Willkommen

XMP Plugin Extended Macro Plugin
Version 1.1.3

Für Anregungen, Verbesserungs- und Erweiterungsvorschläge schreibe bitte eine E-Mail an: info@gaijin.at.

Die neueste Version dieses Plugins ist unter www.gaijin.at verfügbar.

Auf www.gaijin.at findest du auch weitere Beispiele zum XMP und Schnellvorlagen, die das XMP nutzen.

Copyright © 2004-2005 Gaijin
E-Mail: | info@gaijin.at
Website: | www.gaijin.at

Danksagung

  • Floppy
    für das Testen und die Unterstützung bei der Fehlerbereinigung.
  • Carsten - www.kbros.de
    für das Testen der IDN-Funktionen.


Updates

Version 1.1.3

[+] Das Makro "%XMP_IDNList" zur Formatierung und ggf. IDN-Konvertierung von Adresslisten wurde hinzugefügt.
[-] Ein Bug im Makro "%XMP_RunCmd" wurde behoben.

Version 1.1.2

[*] Die Makros "%XMP_List..." zum Auslesen von E-Mail Adresslisten unterstützen nun auch einfache Anführungszeichen und die Erkennung der Namen und Mail-Adressen wurde weiter verbessert.
[*] Wenn die Datei "IDN.dll" nicht gefunden wurde, wird jetzt der Fehler "*** ERROR: IDN.dll not found ***" zurückgegeben.
[-] Ein Bug im Makro "%XMP_FileTime" wurde behoben.

Version 1.1.1

[+] Das Makro "%XMP_TimeQuart" zum Ermitteln des Quartals oder der Jahreszeit für ein bestimmtes Datum wurde hinzugefügt.
[+] Das Makro "%XMP_ListCount" zum Ermitteln der Anzahl von E-Mail Adressen wurde hinzugefügt.
[*] Die Makros "%XMP_ListAddr" und "%XMP_ListName" wurden verbessert.

Version 1.1

[+] Das Makro "%XMP_ArgCount" u.a. zum Ermitteln der Anzahl von Befehlszeilenargumenten wurde hinzugefügt.
[+] Das Makro "%XMP_ArgItem" u.a. zum Ermitteln von Befehlszeilenargumenten wurde hinzugefügt.
[*] Die Makros "%XMP_ListAddr" und "%XMP_ListName" wurden verbessert.

Version 1.0

[+] Das Makro "%XMP_AttrGet" zum Ermitteln der Dateiattribute wurde hinzugefügt.
[+] Das Makro "%XMP_AttrSet" zum Setzen der Dateiattribute wurde hinzugefügt.
[+] Das Makro "%XMP_DirCreate" zum Erstellen ganzer Verzeichnispfade wurde hinzugefügt.
[+] Das Makro "%XMP_DirExist" wurde hinzugefügt. Dieses Makro prüft, ob ein Verzeichnis existiert.
[+] Das Makro "%XMP_DlgFolder" zum Auswählen eines Verzeichnisses wurde hinzugefügt.
[+] Das Makro "%XMP_FileCopy" zum Kopieren von Dateien und Verzeichnissen wurde hinzugefügt.
[+] Das Makro "%XMP_FileMove" zum Verschieben von Dateien und Verzeichnissen wurde hinzugefügt.
[+] Das Makro "%XMP_StrRev" zum Umdrehen eines Textes wurde hinzugefügt.
[*] Das Makro "%XMP_Accounts" wurde erweitert. Das Trennzeichen ist nun frei wählbar und es können nun auch die Kontennamen UND die globalen Ordner ausgegeben werden.
[*] Das Makro "%XMP_FileDel" wurde erweitert. Jetzt können mehrere Dateien gleichzeitig gelöscht werden. Weiters werden Wildcards ("?" und "*") unterstützt.
[*] Das Makro "%XMP_FileName" wurde um zwei Attribute erweitert. Jetzt kann auch der Dateiname ohne Erweiterung und der Pfadname ohne Laufwerksangabe zurückgegeben werden.
[*] Die IDN-Makros wurden verbessert.
[*] Der Hilfedatei wurde eine Übersicht über alle verfügbaren Makros hinzugefügt.
[*] Der Hilfedatei (Installation) wurde eine Beschreibung der im Download enthaltenen Dateien hinzugefügt.

Version 0.9.9

[+] Das Makro "%XMP_DlgInput" zum Eingeben eines beliebigen Textes wurde hinzugefügt.
[+] Das Makro "%XMP_StrWrap" zum Umbrechen eines Textes wurde hinzugefügt.
[+] Das Makro "%XMP_CRC32" zum Errechnen einer Checksumme und zum Anfügen einer SFV-Datei wurde hinzugefügt.
[+] Das Makro "%XMP_UrlDldFile" zum Herunterladen einer Datei wurde hinzugefügt.
[+] Das Makro "%XMP_XtrEMLs" zum Auslesen aller E-Mail Adressen aus einem Text wurde hinzugefügt.
[+] Das Makro "%XMP_XtrURLs" zum Auslesen aller URLs aus einem Text wurde hinzugefügt.
[-] Das Makro "%XMP_DlgOpen" funktioniert nun auch unter Windows 98.
[-] Das Makro "%XMP_PlugPath" funktioniert nun auch unter Windows 98.

Version 0.9.81

[*] Die Datei IDN.dll (für die IDN-Makros) wird nun zuerst im Plugin-Verzeichnis gesucht und dann erst im Windows-System(32)-Verzeichnis.
[*] Die Makros "%XMP_ListAddr" und "%XMP_ListName" unterstützen jetzt auch Mailadressen im Format "email@adresse.com (Name)".

Version 0.9.8

[+] Die Makros "%XMP_AddrToACE", "%XMP_AddrToIDN", "%XMP_DomToACE" und "%XMP_DomToIDN" zum Konvertieren von internationalisierten Domainnamen und E-Mail Adressen wurden hinzugefügt.
[+] Das Makro "%XMP_Accounts" zum Ermitteln der Namen aller Konten und globalen Ordner wurde hinzugefügt.
[+] Das Makro "%XMP_DlgOpen" zum Anzeigen des Datei-öffnen Dialoges wurde hinzugefügt. Die ausgewählten Dateinamen werden zurückgegeben.
[+] Das Makro "%XMP_FileName" zum Extrahieren von bestimmten Teilen eines Dateinamens wurde hinzugefügt.
[+] Das Makro "%XMP_GetPath" zum Ermitteln diverser Systemverzeichnisse wurde hinzugefügt.
[+] Das Makro "%XMP_Process" wurde hinzugefügt. Dieses Makro gibt je nach Parameter alle ausgeführten Prozesse aus oder sucht nach einem bestimmten Prozess.
[+] Das Makro "%XMP_StrTr" zum Austauschen bzw. Löschen von Zeichen aus einem Text wurde hinzugefügt.
[*] Das Makro "%XMP_StrIns" wurde um 4 Ausrichtungsmöglichkeiten erweitert.
[-] Im Makro "%XMP_StrCount" wurde ein Bug behoben.
[-] Im Makro "%XMP_StrItemCnt" wurde ein Bug behoben.

Version 0.9.7

[+] Das Makro "%XMP_FileLong" zum Ermitteln des langen Datei- oder Verzeichnisnamens wurde hinzugefügt.
[+] Das Makro "%XMP_FileShort" zum Ermitteln des kurzen Namens (DOS-Dateiname) einer Datei oder eines Verzeichnisses wurde hinzugefügt.
[+] Das Makro "%XMP_StrLnCnt" zum Ermitteln der Zeilenanzahl in einem Text wurde hinzugefügt.
[+] Beim Laden und Entladen des Plugins können nun Programme und BAT-Dateien ausgeführt werden. Näheres dazu ist auf der Seite "Interne Makros" enthalten.
[*] Die Datums- und Zeitformate wurden um 3 Argumente erweitert.
[*] Das Makro "%XMP_SysInfo" wurde um 7 Argumente erweitert. Es kann nun auch die Systemlaufzeit ausgegeben werden.
[*] Das Makro "%XMP_RunCmd" speichert die temporäre Datei jetzt im temporären Verzeichnis des aktuellen Benutzers.
[-] Das Makro "%XMP_PlugPath" gibt den Pfandnamen nun mit einem abschließenden Backslash - analog zu allen anderen Makros - zurück.

Version 0.9.6

[+] Das Makro "%XMP_FileLnCnt" zum Ermitteln der Zeilenanzahl in einer Datei wurde hinzugefügt.
[+] Das Makro "%XMP_StrAttach" zum Anfügen einer Zeichenkette als Attachment wurde hinzugefügt.
[*] Das Makro "%XMP_RunCmd" kann jetzt auch unter Windows 9x und Windows ME verwendet werden.
[*] Das Makro "%XMP_FileLines" kann nun auch ganze Dateien auslesen.
[*] Das Makro "%XMP_FileLines" kann jetzt auch DOS-Dateien in das Windows-Format konvertieren.
[-] Das Makro "%XMP_FileLines" hat beim Lesen von Daten hinter dem Dateiende nicht vorhandene Leerzeilen zurückgegeben.
[-] Einige Fehler in der Hilfedatei wurden korrigiert.

Version 0.9.5

[+] Das Makro "%XMP_Const" zum Ausgeben von vordefinierten Texten wurde hinzugefügt.
[+] Das Makro "%XMP_Gender" zum Ermitteln des Geschlechts an Hand des Vornamens wurde hinzugefügt.
[+] Das Makro "%XMP_Grep" zum zweilenweisen Durchsuchen eines Textes mit regulären Ausdrücken wurde hinzugefügt.
[+] Das Makro "%XMP_HdrMailer" zum Auslesen des Mailclients des Absenders wurde hinzugefügt.
[*] Das Makro "%XMP_StrC" wurde erweitert.
[*] Das Makro "%XMP_MsgID" kann jetzt auch die Referenz (In-Reply-To) bzw. die neue Referenz auf eine E-Mail ausgeben.
[*] Dem Makro "%XMP_TimeDiff" muss nun nur mehr ein Parameter zwingend vorgegeben werden. Fehlt das zweite Datum, wird das aktuelle Datum verwendet.
[*] Die Makros "%XMP_SubjClean" und "%XMP_SubjCount" verwenden jetzt auch bei einem leeren Betreff-Argument den Originalbetreff.
[*] Das Makro "%XMP_SubjCount" erkennt nun auch Betreffs wie "Re[0]: ...".
[*] Das Makro "%XMP_TimeAdd" kann nun auch mit Wochen rechnen.
[-] Das Makro "%XMP_TimeParse" gab in bestimmten Fällen die Abweichung zur UTC (Formatstring "bbbb") falsch zurück.
[-] Einige Fehler in der Hilfedatei wurden korrigiert.

Version 0.9.4

[+] Das Makro "%XMP_HdrRcvTime" zum Auslesen von Datumsangaben aus den Received-Zeilen des Headers wurde hinzugefügt.
[*] Das Makro "%XMP_TimeDiff" ermöglicht jetzt auch die gemeinsame Darstellung von Tagen, Stunden, Minuten und Sekunden.
[*] Das Makro "%XMP_TimeDiff" kann nun auch die Anzahl der Wochen zwischen zwei Zeitangaben ermitteln.
[*] Das Makro "%XMP_StrC" kann jetzt auch Hexadezimalwerte umwandeln.

Version 0.9.3

[+] Das Makro "%XMP_Host2IP" zum Ermitteln der IP-Adresse eines Rechners wurde hinzugefügt.
[+] Das Makro "%XMP_IP2Host" zum Ermitteln des Hostnamens eines Rechners wurde hinzugefügt.
[*] Das Makro "%XMP_SysInfo" wurde um die Tags "$lhn$" zur Anzeige des lokalen Hostnamens und "$lip$" zur Anzeige der lokalen IP-Adresse, erweitert.
[*] Bei den benutzerdefinierten Datums- und Zeitformaten können jetzt die länderspezifischen Einstellungen festgelegt werden. Dies ist besonders für mehrsprachige Vorlagen hilfreich.
[*] Die Makros "%XMP_RegGet" und "%XMP_RegSet" unterstützen jetzt auch mehrzeilige Registry-Werte (REG_MULTI_SZ).
[*] Das Makro "%XMP_Beats" wurde auf eine dreistellige Ausgabe der Internetzeit umgestellt.
[*] Der Makroname "%XMP_UrlDec" wurde in "%XMP_UrlEnc" umbenannt.
[+] Das Makro "%XMP_UrlDec" zum Demaskieren von Sonderzeichen in URLs wurde hinzugefügt.
[*] Die Fehlermeldungen des Plugins werden nun in Englisch ausgegeben.

Version 0.9.2

[*] Das Makro "%XMP_NoSubj" wurde verbessert.
[-] Das Makro "%XMP_FileTime" wurde korrigiert. Das Formatattribut wurde nich richtig verarbeitet.
[-] Das Makro "%XMP_TimeParse" wurde korrigiert. Der Monat "Mai" wurde nicht erkannt.
[*] Die Hilfedatei wurde korrigiert und erweitert.

Version 0.9.1

[+] Das Makro "%XMP_UrlDec" zum Maskieren von bestimmten Zeichen in URLs und "mailto:"-Links wurde hinzugefügt.
[*] Das Makro "%XMP_StrRepl" wurde um einen Parameter erweitert. Jetzt kann ein Text so lange ersetzt werden, bis keine Fundstellen mehr vorhanden sind.
[*] Das Makro "%XMP_TimeParse" kann nun auch den Bias der betreffenden Zeitzone zurückgeben.
[-] Ein Bug im Makro "%XMP_StrC" wurde behoben.


Anforderungen

Um dieses Plugin verwenden zu können, ist eine der folgenden Versionen von The Bat! erforderlich:

  • The Bat! Version 1.63 Beta 7 oder höher, oder
  • The Bat! Version 2.x oder höher, oder
  • The Bat! Version 3.x oder höher

Installation

Erstelle einen Ordner für Plugins im Programmverzeichnis von The Bat! und kopiere die Datei "XMP.tbp" entweder in diesen Ordner oder einem Unterordner davon.

Starte anschließend The Bat! und wähle über das Menü "Optionen" > "Benutzereinstellungen..." darin wähle den Eintrag "Plugins" in der Liste aus und klicke auf "Hinzufügen". Suche die Datei "XMP.tbp", wähle sie aus und klicke auf "Öffnen".

Danach scheint das Extended Macro Plugin in der Liste der verfügbaren Plugins auf und in der Spalte "Status" sollte "Ok" angezeigt werden. Schließe den Dialog wieder mit "Ok".

Enthaltene Dateien

Folgende Dateien sind im Download enthalten:

XMP.tbp
Extended Macro Plugin-Datei, die in The Bat! eingebunden wird und die erweiterten Makros zur Verfügung stellt.
XMP.chm
(diese Datei) Windows HTML-Hilfedatei zum Extended Macro Plugin.
XMP.ini
Einstellungsdatei des Plugins. Darin werden die Konstanten für das Makro %XMP_Const eingetragen. Weiters können in der Sektion "[Execute]" Programmpfade eingetragen werden, die beim Start bzw. beim Beenden des XMP ausgeführt werden sollen (näheres unter "Interne Makros"). Wird das Makro %XMP_Const nicht verwendet, ist die INI-Datei nicht erforderlich.
IDN.dll
32-Bit Windows-DLL, die für die Konvertierung von internationalisierten Domainnamen (sog. "Umlautdomains") benötigt wird. Werden keine IDN-Makros verwendet, wird diese Datei nicht benötigt.
ReadMe.txt
Standard-Readme, die fast allen meinen Produkten beiliegt.
www.gaijin.at
(www.gaijin.at.url) URL-Datei, die einen Link zu www.gaijin.at enthält. Diese Datei ist in jedem Download enthalten.

Internationale Domains

Alle Makros unter "IDN - Internationale Domains" benötigen die Datei "idn.dll". Diese Datei ist im Download enthalten und kann entweder im Plugin-Verzeichnis liegen (Verzeichnis in dem sich die Datei "xmp.tbp" befindet), oder in das System- bzw. System32-Verzeichnis von Windows kopiert werden.

Die IDN-DLL wird erst beim ersten Aufruf eines IDN-Makros geladen und beim Beenden von The Bat! wieder aus dem Speicher entfernt. Wird kein IDN-Makro aufgerufen, muss die Datei "idn.dll" somit nicht vorhanden sein.

Wichtiges zur Verwendung von Makros

The Bat! interpretiert alle Prozentzeichen (%) als Einleitung für einen Makronamen, also z.B. "%XMP_StrTrim('%OSUBJ')". Dies bedeutet, dass das interne Makro "OSUBJ" ausgeführt wird und die Rückgabe vom Makro "XMP_StrTrim" verarbeitet wird.

Möchte man ein Prozentzeichen innerhalb einer Schnellvorlage ausgeben, muss man zwei Prozentzeichen hintereinander schreiben. Die Schnellvorlage "Das sind %CALC('%_Var+20')%%" ergbibt z.B. "Das sind 65%".

Am Beginn jeder Makro-Beschreibung ist die Syntax des Makros angeführt. Jene Argumente, die in eckigen Klammern stehen können weggelassen werden. In diesem Fall werden die Standardwerte verwendet. Es dürfen aber immer nur die hintersten Argumente entfallen.


Makroübersicht

Bertiebssystem
%XMP_Beep(Frequenz, Dauer)
%XMP_DlgFolder([Text], [Erweitert])
%XMP_DlgInput([Beschreibung], [Vorgabetext])
%XMP_DlgOpen([Mehrfachauswahl], [Titel], [Verzeichnis], [Filter])
%XMP_Envir(Umgebungsvariable)
%XMP_Host2IP([Hostname])
%XMP_IP2Host([IP-Adresse])
%XMP_MsgBox(Text, [Titel], [Style], [OkReturn])
%XMP_Process("E", Prozess)
%XMP_Process("L", [Trennzeichen])
%XMP_RegGet(Schlüssel, [Standard])
%XMP_RegSet(Schlüssel, [Wert], [Format])
%XMP_Run(Programm, [Fenster])
%XMP_RunCmd(Befehl, [NoConvert], [Timeout])
%XMP_SetClipB(Text)
%XMP_SysInfo(Text)

Dateien und Ordner
%XMP_AttrGet(Dateiname)
%XMP_AttrSet(Dateiname, [Attribute])
%XMP_DirCreate(Pfad)
%XMP_DirExist(Verzeichnis)
%XMP_FileAddLn(Datei, Text)
%XMP_FileCopy(Quelle, Ziel)
%XMP_FileDel(Datei)
%XMP_FileExist(Datei)
%XMP_FileInfo(Datei, Info)
%XMP_FileLines(Datei, [Start], [Anzahl], [Konvertierung])
%XMP_FileLnCnt(Datei)
%XMP_FileLong(Dateiname)
%XMP_FileMove(Quelle, Ziel)
%XMP_FileName(Dateiname, [Teil])
%XMP_FileShort(Dateiname)
%XMP_FileSize(Datei, [Einheit])
%XMP_FileTime(Datei, Datum, [Format])
%XMP_GetPath(Pfad)
%XMP_IniGet(Datei, Sektion, Eintrag, [Standard])
%XMP_IniSet(Datei, Sektion, Eintrag, Wert)
%XMP_TempDir
%XMP_TempFile

Datum und Uhrzeit
%XMP_TimeAdd(Zeit, Wert, [Art], [Ausgabeformat])
%XMP_TimeBeats([Zeit])
%XMP_TimeBias
%XMP_TimeCalc(Zeit, Bias, [LokalVonNach], [Ausgabeformat])
%XMP_TimeDiff(Zeit1, [Zeit2], [Art], [Format])
%XMP_TimeParse(ZeitString, [UTC], [Ausgabeformat])
%XMP_TimeQuart([Datum], [Ausgabe])

IDN Internationale Domains
%XMP_AddrToACE(Mailadresse)
%XMP_AddrToIDN(Mailadresse)
%XMP_DomToACE(Domain)
%XMP_DomToIDN(Domain)
%XMP_IDNList(Adressliste)

Nachrichten und Header
%XMP_ClearLines(Text, [Max], [Min])
%XMP_Gender([Vorname])
%XMP_HdrMailer([Standard])
%XMP_HdrRcvTime([Eintrag], [Lokalzeit], [Ausgabeformat])
%XMP_ListAddr(Addressliste, Eintrag)
%XMP_ListCount(Addressliste)
%XMP_ListName(Addressliste, Eintrag)
%XMP_MsgID([MID])
%XMP_NoSubj([Betreff])
%XMP_NoTo([Empfänger])
%XMP_QuoteAdd(Text, [Zeichen])
%XMP_QuoteDel(Text, [MaxLänge], [Zeichen])
%XMP_Sig
%XMP_SubjClean([Betreff])
%XMP_SubjCount([NoFwds], [Betreff])
%XMP_UrlDec(URL)
%XMP_UrlEnc(URL, [Art])
%XMP_XtrEMLs([Text], [Trennzeichen])
%XMP_XtrURLs([Text], [Trennzeichen], [Suchtext])

Zeichenketten
%XMP_ArgCount(Text, [Trennzeichen], [Anführungszeichen])
%XMP_ArgItem(Text, Eintrag, [Trennzeichen], [Anführungszeichen])
%XMP_Grep(Text, RegExp, [Ausgabe])
%XMP_StrAttach(Text, Dateiname)
%XMP_StrC(Text)
%XMP_StrChar(Zeichencode, [Zeichencode], ...)
%XMP_StrCount(Text, Suchtext, [GroßKlein])
%XMP_StrDup(Text, Anzahl)
%XMP_StrIns(Originaltext, Text, [Start/Ausrichtung], [Länge])
%XMP_StrItem(Text, Trennzeichen, Eintrag)
%XMP_StrItem(Text, Trennzeichen)
%XMP_StrLeft(Text, Anzahl)
%XMP_StrLen(Text)
%XMP_StrLines(Text, [Start], [Anzahl])
%XMP_StrLnCnt([Text])
%XMP_StrMid(Text, Start, [Anzahl])
%XMP_StrPos(Text, Suchtext, [GroßKlein])
%XMP_StrRepl(Text, Suche, Neu, [GroßKlein], [Alle])
%XMP_StrRev(Text)
%XMP_StrRight(Text, Anzahl)
%XMP_StrTr(Text, Suche, [Ersetze], [Optionen])
%XMP_StrTrim(Text, [LinksRechts])
%XMP_StrWrap(Text, [Breite])

Sonstige
%XMP_Accounts([Globale Ordner], [Trennzeichen])
%XMP_Const(Konstante, [StrC], [Standard])
%XMP_CRC32(Einstellungen, [Zeichenkette])
%XMP_CRC32(Einstellungen, Datei(en), [Trennzeichen])
%XMP_For(Variable, Von, Bis, Vorlage)
%XMP_Progress(Füllung, Balken, Länge, Gesamt, Wert)
%XMP_Random([Max])
%XMP_Random([Min], [Max])
%XMP_ReX(Text, Ausdruck,[SubPatt])
%XMP_Rot13(Text)
%XMP_Select(Wert, Standard, Wert1, Ausgabe1, [Wert2], [Ausgabe2], ...)
%XMP_Until(Variable, Bis, Vorlage)
%XMP_UrlDldFile(URL, Dateiname)


Interne Makros

%XMP_PlugPath

Gibt den Pfadnamen zurück, in dem das Plugin gespeichert ist.

%XMP_PlugVer

Gibt die Version des Plugin zurück (z.B. "1.0").

Beispiel:
Powered by Extended Macro Plugin %XMP_PlugVer

Ausgabe:
Powered by Extended Macro Plugin 1.0

Programme beim Start und Beenden des XMP ausführen

Beim Laden und Entladen des Plugins können Programme, wie z.B. BAT-Dateien ausgeführt werden. Diese Programme werden somit unmittelbar nach dem Start von The Bat! bzw. kurz vor dem Beenden von The Bat! ausgeführt.

In die Datei "XMP.ini" muss dazu eine Sektion mit dem Namen "Execute" eingefügt werden. Es müssen die vollständigen Pfadnamen zu den Programmen angegeben werden. Handelt es sich um eine BAT-Datei, wird diese unsichtbar ausgeführt, alle anderen Programme, wie z.B. EXE-Dateien werden in einem "normalen" Fenster angezeigt.

Beispiel:
[Execute]
Start=C:\Dokumente und Einstellungen\Gaijin\Anwendungsdaten\The Bat!\start.bat
Exit=C:\WinNT\Explorer.exe


XMP_Beep

%XMP_Beep(Frequenz, Dauer)

Gibt einen Ton mit der angegebenen "Frequenz" und "Dauer" aus.

Das Attribut "Frequenz" muss im Bereich von 37 und 32.767 liegen.

"Dauer" bezeichnet die Dauer des Tones in Millisekunden.

Beispiel:
%XMP_Beep(300,300)%-
%XMP_Beep(200,150)%-
%XMP_Beep(100,400)%-


XMP_DlgFolder

%XMP_DlgFolder([Text], [Erweitert])

Zeigt den Dialog zum Auswählen eines Ordners an und gibt den ausgewählten Pfandnamen zurück.

Mit "Text" kein ein Text angegeben werden, der im Dialog angezeigt wird.

Der Parameter "Erweitert" legt fest, welche Form der Dialog haben soll. Hat der Parameter den Wert 1, wird die neue Dialogform verwendet und es kann unter anderem ein neues Verzeichnis erstellt werden. Der Stadardwert ist "0", welcher die einfache Dialogform bestimmt.

Während der Dialog angezeigt wird, blockiert The Bat! NICHT! Der Text kann bearbeitet werden und der Cursor kann neu positioniert werden.

Beispiel:
Verzeichnis: %XMP_DlgFolder("Wählen Sie ein Verzeichnis aus.",1)


XMP_DlgInput

%XMP_DlgInput([Beschreibung], [Vorgabetext])

Zeigt den Datei-Öffnen Dialog von Windows an und gibt die ausgewählten Dateinamen zurück.

Öffnet eine Dialogbox, die eine Texteingabe anzeigt und den eingegebenen Text zurückgibt.

Das Argument "Beschreibung" legt den Text fest, der als Eingabeaufforderung angezeigt werden soll. Es können maximal 3 Zeilen angezeigt werden. Damit auch Zeilenumbrüche und sonstige Sonderzeichen eingegeben werden können, muss die "Beschreibung" im selben Format angegeben werden, wie im Makro "%XMP_StrC".

Das Argument "Vorgabetext" legt den Wert fest, der im Textfeld bereits vorgegeben ist.

Es können maximal 1024 Zeichen eingegeben werden.

Nach der Texteingabe kann an Stelle der "Ok"-Schaltfläche auch die Eingebetaste gredrückt werden. Achtung: Die ESC-Taste bricht den Dialog nicht ab, sondern hat den selben Effekt, wie die Eingabetaste!

Wird auf die Schaltfläche "Cancel" gedrückt, wird eine Leere Zeichenfolge zurückgegeben.

Während der Dialog angezeigt wird, blockiert The Bat! NICHT! Der Text kann bearbeitet werden und der Cursor kann neu positioniert werden. Der Dialog bleibt allerdings das oberste Fenster.

Beispiel:
Name: %XMP_DlgInput("Name:\w(Zeile2)")
Tel.: %XMP_DlgInput("Telefonnummer:","555-123456789")

Bei der Eingabe von "Karl Huber" im ersten Dialog, und Bestätigen der Textvorgabe im zweiten Dialog, ergibt sich folgende Ausgabe:

Beispiel-Ausgabe:
Name: Karl Huber
Tel.: 555-123456789


XMP_DlgOpen

%XMP_DlgOpen([Mehrfachauswahl], [Titel], [Verzeichnis], [Filter])

Zeigt den Datei-Öffnen Dialog von Windows an und gibt die ausgewählten Dateinamen zurück.

Alle Argumente für dieses Makro sind optional. Ein Aufruf ohne Prameter bewirkt die Anzeige eines Dialoges mit den Standard-Parametern und ermöglicht die Auswahl einer Datei

Hat das Argument "Mehrfachauswahl" den Wert "1", können mehrere Dateien ausgewählt werden. Die einzelnen Dateinamen (samt Pfadangabe) werden durch Pipe-Zeichen (|) voneinander getrennt.

"Titel" gibt den Fenstertitel an, der Standardwert ist "Open file...".

Das Argument "Verzeichnis" bestimmt das aktuelle Verzeichnis im Dialog.

Mit "Filter" können eigene Filter vorgegeben werden. Standardmäßig werden alle Dateien (*.*) angezeigt. Der Filter hat das Format "Beschreibung|Maske". Nach dem Pipe-Zeichen wird die Maske für die Dateie, so wie unter Windows üblich, angegeben, z.B.: "*.txt" für alle Textdateien.


XMP_Envir

%XMP_Envir(Umgebungsvariable)

Gibt den Inhalt der "Umgebungsvariable" aus.

In der Konsole erhält man mit dem Befehl "SET" eine Liste mit allen verfügbaren Umgebungsvariablen.

Beispiel:
XMP_Envir("OS")
XMP_Envir("WinDir")

Ausgabe:
Windows_NT
C:\WINNT


XMP_Host2IP

%XMP_Host2IP([Hostname])

Ermittelt zum angegebenen "Hostnamen" die IP-Adresse. Wird "Hostname" nicht angegeben, wird die IP-Adresse des lokalen Rechners zurückgegeben.

Eine Netzwerk- bzw. Internetverbindung kann erforderlich sein. Wird der Host nicht gefunden, kann die Vorlage kurz (ca. 2 Sekunden) blockieren.

Beispiel:
%XMP_Host2IP
%XMP_Host2IP("gaijin1")
%XMP_Host2IP("gaijin2")

Ausgabe:
192.168.1.1
192.168.1.1
192.168.1.2


XMP_IP2Host

%XMP_IP2Host([IP-Adresse])

Ermittelt zur angegebenen "IP-Adresse" den Hostnamen. Wird "IP-Adresse" nicht angegeben, wird der Hostname des lokalen Rechners zurückgegeben.

Eine Netzwerk- bzw. Internetverbindung kann erforderlich sein. Wird der Host nicht gefunden, kann die Vorlage kurz (ca. 2 Sekunden) blockieren.

Beispiel:
%XMP_IP2Host
%XMP_IP2Host("192.168.1.1")
%XMP_IP2Host("192.168.1.2")

Ausgabe:
GAIJIN1
GAIJIN1
GAIJIN2


XMP_MsgBox

%XMP_MsgBox(Text, [Titel], [Style], [OkReturn])

Gibt ein Meldungsfenster mit dem angegebenen "Text" aus. Der Text kann die selben Steuerzeichen enthalten, wie im Makro "XMP_StrC".

Wird "Titel" nicht angegeben, wird der Name des Plugins als Titel für das Meldungsfenster verwendet ("Extended Macro Plugin").

"Style" bezeichnet die Darstellungsart des Fensters. Die einzelnen Angaben müssen mit einem Beistrich getrennt werden. Folgende Parameter können übergeben werden:

Icon:

ii
Information
iw
Warnung
iq
Frage
is
Stopp / Fehler

Schaltflächen:

o
Ok
oc
Ok, Abbrechen
rc
Wiederholen, Abbrechen
ari
Abbruch, Wiederholen, Ignorieren
yn
Ja, Nein
ync
Ja, Nein, Abbrechen

Standard-Schaltfläche:

b1
1. Schaltfläche
b2
2. Schaltfläche
b3
3. Schaltfläche
b4
4. Schaltfläche

Darstellungsart:

ma
An die Anwendung gebunden
ms
An das System gebunden
mt
An den Task gebunden
tm
Fenster immer oben halten

Rückgabewerte:

O
Ok
C
Abbrechen
A
Abbruch
R
Wiederholen
I
Ignorieren
Y
Ja
N
Nein

Nur wenn unter "OkReturn" der Wert "1" angegeben wurde, wird "O" zurückgegeben, sonst wird für "Ok" nichts zurückgegeben.

Beispiel:
%XMP_MsgBox("Test\nTest")%-
%XMP_MsgBox("Test\nTest","Titel","oc",1)%-
%XMP_MsgBox("Fehlermeldung","Fehler","is,oc,b2,ms,tm",1)%-


XMP_Process

%XMP_Process("E", Prozess)
%XMP_Process("L", [Trennzeichen])

Zeigt eine Liste aller ausgeführten Prozesse an, oder ermittelt, ob ein bestimmter .

Als erster Parameter wird entweder "E" oder "F" erwartet.

Die Option "E" bewirkt, dass nach dem angegebenen "Prozess" gesucht wird. Wird der Prozessname gefunden, wird "1" zurückgegeben, aonsonsten "0". Die Groß- und Kleinschreibung wird nicht beachtet. Es muss der gesamte Prozessname angegeben werden. Die Dateinamenerweiterung ".EXE" kann auch weggelassen werden.

Wird "L" als erster Parameter angegeben, wird eine Liste mit allen Prozessnamen ausgegeben. Das Argument "Trennzeichen" legt das Trennzeichen für die Prozessnamen fest. Standardmäßig wird ein Windows-Zeilenumbruch verwendet.

Beispiel:
%XMP_Process("L")
---
%XMP_Process("L","|")
---
%XMP_Process("E","TheBat.exe")

Ausgabe (gekürzt):
[IDLE]
System
SMSS.EXE
CSRSS.EXE
WINLOGON.EXE
...
thebat.exe
---
[IDLE]|System|SMSS.EXE|CSRSS.EXE|WINLOGON.EXE|...|thebat.exe
---
1


XMP_RegGet

%XMP_RegGet(Schlüssel, [Standard])

Liest einen Wert aus der Windows Registrierungsdatenbank aus.

Der "Schlüssel" wird im Format "ROOT\Schlüssel\Eintrag" angegeben.

Als Root-Schlüssel kann sowohl die Kurzversion, als auch die lange Schreibweise verwendet werden:

CR
HKEY_CLASSES_ROOT
CU
HKEY_CURRENT_USER
LM
HKEY_LOCAL_MACHINE
US
HKEY_USERS
PD
HKEY_PERFORMANCE_DATA
CC
HKEY_CURRENT_CONFIG
DD
HKEY_DYN_DATA

Unter "Standard" kann ein Text vorgegeben werden, der bei einem Fehlerfall zurückgegeben wird, etwa dann, wenn der Eintrag nicht vorhanden ist.

Es können Strings, Expanded-Stings, Multi-Strings und DWord-Werte (vollständig bis 0xFFFFFFFF!) ausgelesen werden.

Beispiel:
%XMP_RegGet("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows %-
NT\CurrentVersion\ProductName")
%XMP_RegGet("LM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName")
%XMP_RegGet("LM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate")

Ausgabe:
Microsoft Windows 2000
Microsoft Windows 2000
1022448564


XMP_RegSet

%XMP_RegSet(Schlüssel, [Wert], [Format])

Schreibt einen "Wert" in die Windows Registrierungsdatenbank aus.

Der "Schlüssel" wird im Format "ROOT\Schlüssel\Eintrag" angegeben.

Als Root-Schlüssel kann sowohl die Kurzversion, als auch die lange Schreibweise verwendet werden:

CR
HKEY_CLASSES_ROOT
CU
HKEY_CURRENT_USER
LM
HKEY_LOCAL_MACHINE
US
HKEY_USERS
PD
HKEY_PERFORMANCE_DATA
CC
HKEY_CURRENT_CONFIG
DD
HKEY_DYN_DATA

Unter "Format" kann das zu verwendete Datenformat angegeben werden. Standard ist "S" für String. Gültige Datenformate sind:

S
String
E
Expanded-String
M
Multi-String
D
DWord

Beispiel:
%XMP_RegGet("CU\Test\TestString","Hallo")
%XMP_RegGet("CU\Test\TestDWord","123","D")

Wird der Wert erfolgreich geschrieben, wird "1" zurückgegeben, im Fehlerfall ist die Rückgabe "0".


XMP_Run

%XMP_Run(Programm, [Fenster])

Führt das angegebene Windows-"Programm" aus.

Mit "Fenster" kann die Fensterform angegeben werden. Gültige Werte sind:

MIN
minimiertes Fenster
MAX
maximiertes Fenster
HIDE
verborgenes Fenster

Wird "Fenster" nicht angegeben, wird das Programm in normaler Größe angezeigt.

Beispiel:
%XMP_Run("calc")
%XMP_Run("explorer","max")


XMP_RunCmd

%XMP_RunCmd(Befehl, [NoConvert], [Timeout])

Führt den angegebenen Konsolen-"Befehl" aus und gibt die Ausgabe als Ergebnis zurück. Pfadangaben müssen im DOS-Format (mit "8+3" Dateinamen) übergeben werden!

Hat "NoConvert" den Wert "1", wird die Ausgabe nicht in das ANSI-Format konvertiert. Einige Programme geben die Daten bereits im ANSI-Format aus.

Das "Timeout" legt die maximale Wartezeit in Millisekunden fest, bis die Programmausführung abgebrochen wird. Der Standardwert sind 5000 Millisekunden (5 Sekunden).

Beispiel:
%XMP_RunCmd("ver")

Ausgabe:
Microsoft Windows 2000 [Version 5.00.2195]


XMP_SetClipB

%XMP_SetClipB(Text)

Speichert den unter "Text" angegebenen Text in der Zwischenablage von Windows. Mit dem internen Makro von The Bat! "%CLIPBOARD" kann die Zwischenablage ausgelesen werden.

Beispiel:
%XMP_SetClipB("Hallo")

Das Makro "XMP_SetClipB" hat keien Rückgabewert.


XMP_SysInfo

%XMP_SysInfo(Text)

Ermittelt Systeminformationen und ersetzt im "Text" bestimmte Tags mit diesen.

Folgende Tags werden erkannt:

$clv$
CPU Prozessor-Level
$cmn$
CPU-Modell
$cnr$
Anzahl der CPUs
$cns$
Name der CPU
$csp$
Geschwindigkeit der CPU
$ctp$
CPU-Typ
$cvn$
Hersteller der CPU
$lhn$
Lokaler Hostname
$lip$
Lokale IP-Adresse
$maf$
Verfügbare Größe der Auslagerungsdatei in Megabyte
$map$
Verfügbarer physikalischer Speicher in Megabyte
$mav$
Verfügbarer virtueller Speicher in Megabyte
$mml$
Speicherauslastung in Prozent
$mtf$
Maximale Größe der Auslagerungsdatei in Megabyte
$mtp$
Gesamter physikalischer Speicher in Megabyte
$mtv$
Gesamter virtueller Speicher in Megabyte
$osp$
Plattform
$pcn$
Computername
$sed$
Systemlaufzeit in Tagen
$seh$
Systemlaufzeit in Stunden
$sen$
Systemlaufzeit in Minuten
$ses$
Systemlaufzeit in Sekunden
$suh$
Stunden-Wert der Systemlaufzeit
$sun$
Minuten-Wert der Systemlaufzeit
$sus$
Sekunden-Wert der Systemlaufzeit
$tdn$
Name der Sommerzeit für die eingestellte Zeitzone
$tsn$
Name der Winterzeit für die eingestellte Zeitzone
$tzn$
Name der eingestellten Zeitzone
$usn$
Benutzername
$wcn$
Bezeichnung des Betriebssystems
$wvm$
Hauptversion des Betriebssystems
$wvs$
Nebenversion des Betriebssystems
$wvb$
Build-Nummer des Betriebssystems
$wvc$
CSD-Version des Betriebssystems

Beispiel:
%XMP_SysInfo("Windows $wcn$ ($osp$ $wvm$.$wvs$%-
Build $wvb$ - $wvc$)"
%XMP_SysInfo("CPU: $cvn$ $cmn$ ($ctp$)")
---
Das System läuft seit: %XMP_SysInfo("$sen$ Minuten")
(%XMP_SysInfo("$sed$ Tage, $suh$ Stunden, $sun$ %-
Minuten, $sus$ Sekunden."))

Ausgabe:
Windows 2000 (NT 5.0 Build 2195 - Service Pack 4)
CPU: Intel Pentium 4 (586)
---
Das System läuft seit: 764 Minuten
(0 Tage, 12 Stunden, 44 Minuten, 10 Sekunden.)


XMP_AttrGet

%XMP_AttrGet(Dateiname)

Ermittelt die Attribute der angegebenen Datei.

Als Attribute werden folgende Werte zurückgegeben:

R
Schreibgeschützt
A
Archiv
H
Versteckt
S
System
D
Verzeichnis

Wird eine leere Zeichenkette zurückgegeben, besitzt die Datei keine Attribute. Im Fehlerfall wird ein Stern ("*") zurückgegeben.

Beispiel:
%XMP_AttrGet("C:\Boot.ini")

Ausgabe:
HS


XMP_AttrSet

%XMP_AttrSet(Dateiname, [Attribute])

Setzt die Attribute der angegebenen Datei.

Als Attribute werden folgende Werte erkannt:

R
Schreibgeschützt
A
Archiv
H
Versteckt
S
System

Die Reihenfolge und die Groß- und Kleinschreibung wird bei den Attributen nicht beachtet. Werden Zeichen angegeben, die nicht in der oben angeführten Liste enthalten sind, werden sie ignoriert.

Werden keine Attribute angegeben, werden alle Attribute entfernt.

Konnten die Attribute gesetzt werden, wird "1" zurückgegeben, sonst "0".

Beispiel:
%XMP_AttrSet("C:\Test.txt","HSA")


XMP_DirCreate

%XMP_DirCreate(Pfad)

Erstellt den angegebenen "Pfad". Wurde der Pfad erfolgreich erstellt oder existierte es bereits, wird der Wert "1" zurückgegeben. Kann der Pfad nicht erstellt werden, wird "0" zurückgegeben.

Beispiel:
%_Tmp='%XMP_DirCreate("C:\Test1\TEST2\test3")'%-

Die Variable "%_Tmp" enthält den Rückgabewert des Makros "%XMP_DirCreate", der mit "%IF" oder einem anderen Makro weiterverarbeitet werden kann.


XMP_DirExist

%XMP_DirExist(Verzeichnis)

Prüft, ob ein "Verzeichnis" existiert. Wurde das Verzeichnis gefunden, wird der Wert "1" zurückgegeben, sonst "0".

Beispiel:
%_Tmp='%XMP_DirExist("C:\Windows\System32")'%-

Die Variable "%_Tmp" enthält den Rückgabewert des Makros "%XMP_DirExist", der mit "%IF" oder einem anderen Makro weiterverarbeitet werden kann.


XMP_FileAddLn

%XMP_FileAddLn(Datei, Text)

Fügt der "Datei" die unter "Text" angegebenen Zeilen hinzu.

Das Argument "Text" kann auch Zeilenumbrüche enthalten. Ist die Datei nicht vorhanden, wird sie erstellt.

Beispiel:
%XMP_FileAddLn("C:\Test.txt","%XMP_StrC('Zeile1\r\nZeile2\r\nZeile3')")

Inhalt der Datei:
...
Zeile1
Zeile2
Zeile3


XMP_FileCopy

%XMP_FileCopy(Quelle, Ziel)

Kopiert die Datei(en), die unter "Quelle" angegeben sind in das "Ziel"-Verzeichnis. Existiert die Datei im Zielverzeichnis bereits, wird sie ohne Rückfrage überschrieben.

Wurden die Dateien/Ordner erfolgreich kopiert, wird der Wert "1" zurückgegeben, sonst "0".

Um mehrere Dateien gleichzeitig zu kopieren, können die Dateinamen mit einem Pipe-Zeichen ("|") von einander getrennt werden. Weiters werden die Wildcard-Zeichen ("?" und "*") unterstützt.

Beispiel:
%_Tmp='%XMP_FileCopy("C:\Test.txt","C:\Windows\")'%-

Die Variable "%_Tmp" enthält den Rückgabewert des Makros "%XMP_FileCopy", der mit "%IF" oder einem anderen Makro weiterverarbeitet werden kann.


XMP_FileDel

%XMP_FileDel(Datei)

Löscht die angegebene "Datei" ohne Rückfrage. Wurde die Datei erfolgreich gelöscht, wird der Wert "1" zurückgegeben, sonst "0".

Um mehrere Dateien gleichzeitig zu löschen, können die Dateinamen mit einem Pipe-Zeichen ("|") von einander getrennt werden. Weiters werden die Wildcard-Zeichen ("?" und "*") unterstützt.

Beispiel:
%_Tmp='%XMP_FileDel("C:\Test.txt")'%-

Die Variable "%_Tmp" enthält den Rückgabewert des Makros "%XMP_FileDel", der mit "%IF" oder einem anderen Makro weiterverarbeitet werden kann.


XMP_FileExist

%XMP_FileExist(Datei)

Prüft, ob eine "Datei" existiert. Wurde die Datei gefunden, wird der Wert "1" zurückgegeben, sonst "0".

Beispiel:
%_Tmp='%XMP_FileExist("C:\Test.txt")'%-

Die Variable "%_Tmp" enthält den Rückgabewert des Makros "%XMP_FileExist", der mit "%IF" oder einem anderen Makro weiterverarbeitet werden kann.


XMP_FileInfo

%XMP_FileInfo(Datei, Info)

Ermittelt Informationen aus dem VERSIONINFO-Block einer EXE-Datei oder einer DLL-Datei.

Das Argument "Info" bezieht sich auf den Namen der gespeicherten Informationen. Es bestehen keine Einschränkungen hinsichtlich des Namens. Wird eine Information nicht gefunden, wird nichts zurückgegeben.

Beispiele für "Info":

  • CompanyName
  • FileDescription
  • FileVersion
  • InternalName
  • LegalCopyright
  • OriginalFilename
  • ProductName
  • ProductVersion

Fallweise können auch noch weitere Werte abgefragt werden.


XMP_FileLines

%XMP_FileLines(Datei, [Start], [Anzahl], [Konvertierung])

Liest aus der "Datei" ab der Zeile "Start" eine bestimmte "Anzahl" von Zeilen aus und gibt diese als Ergebnis zurück.

Wird "Start" weggelassen, wird die erste Zeile als Beginn angenommen. Der Standardwert für "Anzahl" ist "0". Dies bedeutet, dass alle Zeilen bis zum Dateiende zurückgegeben werden.

Der Aufruf des Makros nur mit einem Dateinamen gibt somit alle Zeilen in der Datei aus.

Für den Parameter "Konvertierung" kann eine "1" angegeben werden, wenn DOS-Dateien gelesen werden sollen. Der Standard ist hier "0" für Windows-Dateien.

Beispiel:
%XMP_FileLines("C:\Win.txt",2,2)
Ohne Konvertierung: %XMP_FileLines("C:\Dos.txt",2,1)%-
Mit Konvertierung:  %XMP_FileLines("C:\Dos.txt",2,1,1)

Ausgabe:
2 Abc ÄäÖöÜü ß µ WIN
3 Abc ÄäÖöÜü ß µ WIN

Ohne Konvertierung: 2 Abc Ž„™”š á æ DOS
Mit Konvertierung:  2 Abc ÄäÖöÜü ß µ DOS


XMP_FileLnCnt

%XMP_FileLnCnt(Datei)

Ermittelt die Anzahl der Zeilen in der angegebenen "Datei".

Wird die Datei nicht gefunden, wird eine leere Zeichenkette zurückgegeben.

Beispiel:
Lines="%XMP_FileLnCnt('C:\boot.ini')"
Error="%XMP_FileLnCnt('C:\boot1.ini')"

Ausgabe:
Lines="5"
Error=""


XMP_FileLong

%XMP_FileLong(Dateiname)

Ermittelt den langen Dateinamen aus dem angegebenen kurzen Datei- oder Verzeichnisnamen.

Beispiel:
%XMP_FileLong("C:\WINDOWS\ANWEND~1\THEBAT~1\")

Ausgabe:
C:\WINDOWS\Anwendungsdaten\The Bat!\


XMP_FileMove

%XMP_FileMove(Quelle, Ziel)

Verschiebt die Datei(en), die unter "Quelle" angegeben sind in das "Ziel"-Verzeichnis. Existiert eine Datei im Zielverzeichnis mit dem selben Namen bereits, wird sie ohne Rückfrage überschrieben.

Wurden die Dateien/Ordner erfolgreich verschoben, wird der Wert "1" zurückgegeben, sonst "0".

Um mehrere Dateien gleichzeitig zu verschieben, können die Dateinamen mit einem Pipe-Zeichen ("|") von einander getrennt werden. Weiters werden die Wildcard-Zeichen ("?" und "*") unterstützt.

Beispiel:
%_Tmp='%XMP_FileMove("C:\Test.txt","C:\Windows\")'%-

Die Variable "%_Tmp" enthält den Rückgabewert des Makros "%XMP_FileMove", der mit "%IF" oder einem anderen Makro weiterverarbeitet werden kann.


XMP_FileName

%XMP_FileName(Dateiname, [Teil])

Gibt einen Teil eines "Dateinamens" zurück.

Folgende "Teile" können extrahiert werden:

N
Dateiname mit Erweiterung (Standard)
F
Dateiname ohne Erweiterung
E
Dateinamenserweiterung
D
Laufwerksangabe
P
Pfadname, inklusive Laufwerksangabe
V
Pfadname, ohne Laufwerksangabe
T
Bezeichnung des Dateityps, wie er im Explorer angezeigt wird

Beispiel:
%XMP_FileName("C:\Windows\Explorer.exe")
%XMP_FileName("C:\Windows\Explorer.exe","F")
%XMP_FileName("C:\Windows\Explorer.exe","E")
%XMP_FileName("C:\Windows\Explorer.exe","D")
%XMP_FileName("C:\Windows\Explorer.exe","P")
%XMP_FileName("C:\Windows\Explorer.exe","V")
%XMP_FileName("C:\Windows\Explorer.exe","T")

Ausgabe:
Explorer.exe
Explorer
.exe
C:
C:\Windows\
\Windows\
Anwendung


XMP_FileShort

%XMP_FileShort(Dateiname)

Ermittelt den kurzen Dateinamen (DOS-Dateinamen) der angegebenen Datei oder des angegebenen Verzeichnisses.

Beispiel:
%XMP_FileShort("C:\WINDOWS\Anwendungsdaten\The Bat!\Vorlagen\QT_Pack")

Ausgabe:
C:\WINDOWS\ANWEND~1\THEBAT~1\Vorlagen\QT_Pack


XMP_FileSize

%XMP_FileSize(Datei, [Einheit])

Ermittelt die Größe einer "Datei".

Das Argument "Einheit" kann folgende Werte haben:

K
Kilobyte
M
Megabyte
G
Gigabyte

Das Ergebnis wird auf 2 Nachkommastellen gerundet.

Wird das optionale Argument "Einheit" weggelassen, oder ein anderes als eines der oben genannten angegeben, wird die Dateigröße in Bytes ausgegeben.

Beispiel:
%XMP_FileSize("C:\Test.dat","K") KB

Ausgabe:
321,72 KB


XMP_FileTime

%XMP_FileTime(Datei, Datum, [Format])

Ermittelt das angebene "Datum" einer "Datei".

Das Argument "Datum" kann folgende Werte haben:

A
Datum des letzten Zugriffes
C
Datum und Uhrzeit der Erstellung
M
Datum und Uhrzeit der letzten Änderung

Wird das optionale Argument "Format" weggelassen, wird das Datum im Format "dd.mm.yyyy hh:nn:ss" bzw. im Fall des letzten Zugriffes im Format "dd.mm.yyyy" ausgegeben.

Die Formatangaben entsprechen denen von The Bat!

Beispiel:
%XMP_FileTime("C:\Test.txt","C","mm/dd/yyyy, hh:nn) Uhr
%XMP_FileTime("C:\Test.txt","M")

Ausgabe:
10/13/2004, 17:27 Uhr
13.10.2004 18:02:29


XMP_GetPath

%XMP_GetPath(Pfad)

Ermittelt das mit "Pfad" benannte Verzeichnis.

Folgende benannte "Pfade" sind verfügbar:

TBWork
Arbeitsverzeichnis von The Bat!
WinDir
Windows-Verzeichnis
SysDir
System-Verzeichnis
MyDesktop
Desktop-Verzeichnis des aktuellen Benutzers
MyFiles
Verzeichnis der "Eigene Dateien" des aktuellen Benutzers
MyRecent
Zuletzt verwendete Dateien des aktuellen Benutzers
MyTemp
Temporäres Verzeichnis des aktuellen Benutzers

Zusätzlich können alle Namen der "Shell Folders" aus der Registry verwendet werden. Zum Beispiel sind hier Pfade wie "AppData", "Lokal Settings" und "Local AppData" eingetragen.

Beispiel:
%XMP_GetPath("TBWork")
%XMP_GetPath("MyTemp")
%XMP_GetPath("WinDir")
%XMP_GetPath("MyFiles")
%XMP_GetPath("Local Settings")

Ausgabe:
C:\Dokumente und Einstellungen\Gaijin\Anwendungsdaten\The Bat!\
C:\Dokumente und Einstellungen\Gaijin\Lokale Einstellungen\Temp\
C:\WINNT\
C:\Dokumente und Einstellungen\Gaijin\Eigene Dateien\
C:\Dokumente und Einstellungen\Gaijin\Lokale Einstellungen\


XMP_IniGet

%XMP_IniGet(Datei, Sektion, Eintrag, [Standard])

Liest einen Wert aus einer INI-Datei aus. Tritt ein Fehler auf, oder ist der Wert leer oder nicht vorhanden, wird der unter "Standard" angegebene Wert zurückgegeben.

Wird "Standard" nicht angegeben, wird eine leere Zeichenkette angenommen.

Die maximale Größe der auszulesenden Daten beträgt 10 KB.

Beispiel:
%XMP_IniGet("C:\Test.ini","Settings","Path")


XMP_IniSet

%XMP_IniSet(Datei, Sektion, Eintrag, Wert)

Schreibt einen "Wert" in eine INI-Datei. Wird der Wert erfolgreich geschrieben, wird nichts zurückgegeben. Bei einem Fehler wird die Fehlermeldung ' *** Aktion nicht erfolgreich *** ' ausgegeben.

Beispiel:
%XMP_IniSet("C:\Test.ini","Settings","Path","C:\Test\")


%XMP_TempDir

Ermittelt das temporäre Verzeichnis des Betriebssystems.

Beispiel:
%XMP_TempDir

Ausgabe:
C:\DOKUME~1\Gaijin\LOKALE~1\Temp\


%XMP_TempFile

Ermittelt einen freien Dateinamen für eine temporäre Datei.

Beispiel:
%XMP_TempFile

Ausgabe:
C:\DOKUME~1\Gaijin\LOKALE~1\Temp\XMP4C6.tmp


XMP_TimeAdd

%XMP_TimeAdd(Zeit, Wert, [Art], [Ausgabeformat])

Fügt einer "Zeit" (Datum und Uhrzeit) einen bestimmten "Wert" hinzu. Durch die Angabe eines negativen Wertes, wird die Zeit abgezogen. Negative Werte müssen aber in Anführungszeichen gesetzt werden!

Die "Zeit" muss im Format "dd.mm.yyyy hh:nn:ss" oder "dd.mm.yyyy" angegeben werden!

Ist "Art" nicht angegeben, werden Tage hinzugefügt. Das Argument "Art" kann folgende Werte haben:

D
Tage (Standard)
W
Wochen
M
Monate
Y
Jahre
H
Stunden
N
Minuten
S
Sekunden

Das Argument "Ausgabeformat" bezeichnet die Darstellungsart der Rückgabezeit (s.h. Datums- und Zeitformate). Wird kein "Ausgabeformat" angegeben, erfolgt die Ausgabe im Format "dd.mm.yyyy hh:nn:ss".

Beispiel:
%XMP_TimeAdd("12.10.2004 19:04:23",3)
%XMP_TimeAdd("12.10.2004 19:04:23",3,"H")
%XMP_TimeAdd("12.10.2004 19:04:23",3,"N","mm/dd/yyyy hh:nn")
%XMP_TimeAdd("12.10.2004 19:04:23","-3")

Ausgabe:
15.10.2004 19:04:23
12.10.2004 22:04:23
10/12/2004 19:07
09.10.2004 19:04:23


XMP_TimeBeats

%XMP_TimeBeats([Zeit])

Ermittelt die aktuelle Internetzeit, bzw. die Internetzeit basierend auf der angegebenen "Zeit".

Die "Zeit" muss in einem gültigen Zeitformat, z.B. "hh:nn", "hh:nn:ss", oder "dd.mm.yyyy hh:nn:ss", angegeben werden und muss in UTC (GMT) Zeit vorliegen!

Beispiel:
%XMP_TimeBeats
%XMP_TimeBeats("20:15")
%XMP_TimeBeats("12.10.2004 11:00:00")
%XMP_TimeBeats("24.12.2004 11:00:00")

Ausgabe:
040
885
500
500


%XMP_TimeBias

Ermittelt den Unterschied zwischen der eingestellten Zeitzone und der UTC-Zeit und gibt diesen in einem für E-Mails üblichen Format (+/-hhnn) zurück.

Beispiel:
%XMP_TimeBias

Ausgabe:
+0200


XMP_TimeCalc

%XMP_TimeCalc(Zeit, Bias, [LokalVonNach], [Ausgabeformat])

Errechnet eine neue Zeit auf Grund des angegebenen "Bias" aus der angegebenen "Zeit".

Der "Bias" kann entweder im Format "+/-hhnn" angegeben werden, oder als Abkürzung des Zeitzonennamens, z.B. "CEST" oder "MEZ". Eine Liste mit den unterstützten Zeitzonen ist auf der Seite "Zeitzonen" angeführt.

Das Argument "LokalVonNach" gibt an, ob die neue Zeit von der lokalen Zeit oder in die lokale Zeit errechnet werden soll. Der Standard ist von der lokalen Zeit in eine andere Zeit.

Das Argument "Ausgabeformat" bezeichnet die Darstellungsart der Rückgabezeit (s.h. Datums- und Zeitformate). Wird kein "Ausgabeformat" angegeben, erfolgt die Ausgabe im Format "dd.mm.yyyy hh:nn:ss".

Beispiel:
%XMP_TimeCalc("19:45:00","+0200",0,"hh:nn:ss")
%XMP_TimeCalc("19:45:00","+0200",1,"hh:nn:ss")
%XMP_TimeCalc("19:45:00","CEST",1,"hh:nn:ss")

Ausgabe:
17:45:00
21:45:00
21:45:00


XMP_TimeDiff

%XMP_TimeDiff(Zeit1, [Zeit2], [Art], [Format])

Ermittelt eine Zeitspanne zwischen der "Zeit1" und der "Zeit2".

Die "Zeit" muss im Format "dd.mm.yyyy hh:nn:ss", "dd.mm.yyyy" oder "hh:nn:ss" angegeben werden!

Ist die "Zeit2" kleiner als die "Zeit1" wird der Zeitunterschied ebenfalls in positiven Zahlen dargestellt! Wird die "Zeit2" weggelassen, wird die aktuelle Zeit verwendet verwendet.

Ist "Art" nicht angegeben, wird die Anzahl der Tage ermittelt.

Hat das Argument "Art" den Wert "X", werden die verstrichenen Tage, Stunden, Minuten und Sekunden berechnet und mit den unter "Format" angegebenen Zeichenfolgen dargestellt.

Das Argument "Format" beinhaltet die Bezeichnungen für die einzelnen Angaben in der Einzahl und in der Mehrzahl. Zusätzlich muss ein Trennzeichen angegeben werden. Die einzelnen Bezeichnungen müssen mit einem Pipe-Zeichen "|" voneinander getrennt werden. Aus dem Beispiel ist der Aufbau und die Funktionsweise leicht ersichtlich.

Das Argument "Art" kann eines der folgenden Werte haben:

D
Tage (Standard)
W
Wochen
M
Monate
Y
Jahre
H
Stunden
N
Minuten
S
Sekunden
X
Tage, Stunden, Minuten, Sekunden

Beispiel:
%XMP_TimeDiff("19:45:00","21:22:00","H")
%XMP_TimeDiff("19:45:00","21:53:00","H")
%XMP_TimeDiff("12.10.2004","24.12.2004")
%XMP_TimeDiff("01.01.2004","12.10.2004")
---
%XMP_TimeDiff("01.01.2004 12:00:00","08.01.2004 11:21:32","X")
%XMP_TimeDiff("01.01.2004","12.10.2004 23:07:11","X",%-
" Tag| Tage| Std.| Std.| Min.| Min.| Sec.| Sec.|, ")
%XMP_TimeDiff("01.01.2004","19.08.2004 10:30:01","X",%-
" Tag | Tage |h|h|m|m|s|s|")
%XMP_TimeDiff("01.01.2004 12:00:00","08.01.2004 12:21:00","X")

Ausgabe:
1
2
73
285
---
6 Tage, 23 Stunden, 21 Minuten, 32 Sekunden
285 Tage, 23 Std., 7 Min., 11 Sec.
231 Tage 10h30m1s
7 Tage, 21 Minuten


XMP_TimeDiff

%XMP_TimeParse(ZeitString, [UTC], [Ausgabeformat])

Ermittelt aus einem "ZeitString", wie dieser in den Headerzeilen einer Mail angegeben ist eine formatierbare Zeit.

Hat "UTC" den Wert "1", wird vom enthaltenen Bias die UTC-Zeit errechnet, sonst wird die Lokalzeit, wie diese im "ZeitString" enthalten ist, ausgegeben. Eine Liste mit den unterstützten Zeitzonen ist auf der Seite "Zeitzonen" angeführt.

Das Argument "Ausgabeformat" bezeichnet die Darstellungsart der Rückgabezeit (s.h. Datums- und Zeitformate). Wird kein "Ausgabeformat" angegeben, erfolgt die Ausgabe im Format "dd.mm.yyyy hh:nn:ss".

Beispiel:
%XMP_TimeParse("Tue, 5 Oct 2004 13:44:26 +0200 (CEST)")
%XMP_TimeParse("Tue, 5 Oct 2004 13:44:26 +0200 (CEST)",1)

Originalstring:
Tue, 5 Oct 2004 13:44:26 +0200 (CEST)

Ausgabe:
05.10.2004 13:44:26
05.10.2004 11:44:26


XMP_TimeQuart

%XMP_TimeQuart([Datum], [Ausgabe])

Ermittelt aus einer "Datum", je nach dem Wert von "Ausgabe" entweder das Quartal oder die Jahreszeit.

Wird kein "Datum" angegeben oder ist der Wert ungültig, wird das aktuelle Datum verwendet.

Hat "Ausgabe" den Wert "1", wird die Jahreszeit als Text zurückgegeben, hat "Ausgabe" den Wert "0" oder wird es nicht angegeben, wird das Quartal zurückgegeben.

Beispiel:
%XMP_TimeQuart("20.3.2004"). Quartal
%XMP_TimeQuart("5.4.2004"). Quartal
%XMP_TimeQuart("20.3.2004",1)
%XMP_TimeQuart("21.3.2004",1)

Ausgabe:
1. Quartal
2. Quartal
Winter
Frühling


XMP_AddrToACE

%XMP_AddrToACE(Mailadresse)

Konvertiert eine oder mehrere nationale E-Mail Adressen, falls erforderlich, in das internationalisierte Format.

Achtung: Dieses Makro benötigt die Datei "idn.dll"! Nähere Informationen sind auf der Seite "Installation" enthalten.

Beispiel:
%_A=#%XMP_AddrToACE("karl@müller.at")#%-
%_A
%XMP_AddrToIDN("%_A")

%XMP_AddrToACE("franz@huber.de")
%XMP_AddrToIDN("franz@huber.de")

Ausgabe:
karl@xn--mller-kva.at
karl@müller.at

franz@huber.de
franz@huber.de


XMP_AddrToIDN

%XMP_AddrToIDN(Mailadresse)

Konvertiert eine oder mehrere internationalisierte E-Mail Adressen, falls erforderlich, in das nationale Format.

Achtung: Dieses Makro benötigt die Datei "idn.dll"! Nähere Informationen sind auf der Seite "Installation" enthalten.

Beispiel:
%_A=#%XMP_AddrToACE("karl@müller.at")#%-
%_A
%XMP_AddrToIDN("%_A")

%XMP_AddrToACE("franz@huber.de")
%XMP_AddrToIDN("franz@huber.de")

Ausgabe:
karl@xn--mller-kva.at
karl@müller.at

franz@huber.de
franz@huber.de


XMP_DomToACE

%XMP_DomToACE(Domain)

Konvertiert eine Domain, falls erforderlich, in einen Punycode-String. Dieses Format wird für internationalisierte Domainnamen benötigt.

Achtung: Dieses Makro benötigt die Datei "idn.dll"! Nähere Informationen sind auf der Seite "Installation" enthalten.

Beispiel:
%_A=#%XMP_DomToACE("www.müller.de")#%-
%_A
%XMP_DomToIDN("%_A")

%XMP_DomToACE("www.huber.de")
%XMP_DomToIDN("www.huber.de")

Ausgabe:
www.xn--mller-kva.de
www.müller.de

www.huber.de
www.huber.de


XMP_DomToIDN

%XMP_DomToIDN(Domain)

Konvertiert eine kodierte internationalisierte Domain, falls erforderlich, in einen normalen Domainnamen.

Achtung: Dieses Makro benötigt die Datei "idn.dll"! Nähere Informationen sind auf der Seite "Installation" enthalten.

Beispiel:
%_A=#%XMP_DomToACE("www.müller.de")#%-
%_A
%XMP_DomToIDN("%_A")

%XMP_DomToACE("www.huber.de")
%XMP_DomToIDN("www.huber.de")

Ausgabe:
www.xn--mller-kva.de
www.müller.de

www.huber.de
www.huber.de


XMP_IDNList

%XMP_IDNList(Adressliste)

Formatiert eine "Adressliste", so wie diese z.B. von den Makros "%TO", "%FROM" oder "%BCC" zurückgegeben weird und konvertiert dabei erforderlichenfalls IDN-Adressen.

Beispiel:
%_TMP="%XMP_IDNList('%TO')"%-
%TO=""%-%TO="%_TMP"


XMP_ClearLines

%XMP_ClearLines(Text, [Max], [Min])

Entfernt aus einem "Text" alle unnötigen Leerzeilen.

Das Argument "Max" legt die Anzahl der Leerzeilen fest, die maximal im Text vorkommen dürfen. Wird diese Zahl überschritten, werden die betreffenden Leerzeilen gegen die in "Min" angegebenen Leerzeilen ersetzt.

Der Standardwert für "Max" ist "3" und für "Min" "2".

Beispiel:
%XMP_ClearLines("%TEXT",3,2)

Originaltext:
Zeile 1

Zeile 4

Zeile 10

Ausgabe:
Zeile 1

Zeile 4

Zeile 10


XMP_Gender

%XMP_Gender([Vorname])

Versucht aus dem angegebenen "Vornamen" das Geschlecht zu ermitteln.

Wird "Vorname" nicht angegeben, wird zuerst aus dem Adressbuch das Geschlecht des Empfängers ("To"-Feld des Nachrichteneditors) ermittelt. Ist dieses nicht angegeben oder der Empfänger nicht im Adressbuch eingetragen, wird versucht, aus dem Vornamen des Empfängers das Geschlecht auf Grund seines Vornamens zu ermitteln.

Das Makro gibt "0" für eine Organistation (falls im Adressbuch angegeben), "1" für einen Mann und "2" für eine Frau zurück. Ist das Geschlecht im Adressbuch nicht angegeben, wird grundsätzlich "1" für einen Mann zurückgegeben. In wenigen Fällen wird "0" für eine Organisation der eine "Familie..." zurückgegeben.


XMP_HdrMailer

%XMP_HdrMailer([Standard])

Ermittelt das Mailprogramm des Absenders einer Mail aus dem Nachrichten-Header.

Wird der Name des Mailprogramms nicht gefunden, wird der unter "Standard" angeführte Wert zurückgegeben. Ist das Argument "Standard" nicht vorhanden, wird eine leere Zeichenkette zurückgegeben.

Beispiel:
%XMP_HdrMailer

Beispiel-Ausgaben:
Microsoft Outlook Express 5.00.2615.200
The Bat! (v2.12.03) Personal


XMP_HdrRcvTime

%XMP_HdrRcvTime([Eintrag], [Lokalzeit], [Ausgabeformat])

Ermittelt aus den Received-Zeilen des Headers die mit "Eintrag" angegebene Zeit. "Eintrag" kann die Werte "0" und "1" haben, wobei "0" die Zeit der ersten Received-Zeile (Versendezeit) und "1" die Zeit der letzten Received-Zeile (Eingangszeit beim eigenen Provider) darstellt. Wird "Eintrag" nicht angegeben, wird "0" (Versendezeit) angenommen.

Hat "Lokalzeit" den Wert "1", wird die Lokalzeit zurückgegeben. Hat "Lokalzeit" den Wert "0" (Standard), wird vom enthaltenen Bias die UTC-Zeit errechnet. Eine Liste mit den unterstützten Zeitzonen ist auf der Seite "Zeitzonen" angeführt.

Das Argument "Ausgabeformat" bezeichnet die Darstellungsart der Rückgabezeit (s.h. Datums- und Zeitformate). Wird kein "Ausgabeformat" angegeben, erfolgt die Ausgabe im Format "dd.mm.yyyy hh:nn:ss".

Beispiel:
%XMP_HdrRcvTime
%XMP_HdrRcvTime(0)
%XMP_HdrRcvTime(1)
%XMP_HdrRcvTime(1,1)

Ausgabe:
27.02.2004 14:56:31
27.02.2004 14:56:31
27.02.2004 14:56:28
27.02.2004 15:56:28


XMP_ListAddr

%XMP_ListAddr(Addressliste, Eintrag)

Ermittelt aus einer Liste mit E-Mail Adressen, wie diese z.B. in "%OTO" gespeichert ist, eine bestimmte Adresse ("Eintrag").

Um einen Namen aus der Adressliste zu extrahieren, kann das Makro "XMP_ListName" verwendet werden. Das Makro "XMP_ListCount" ermittelt die Anzahl der verfügbaren Einträge.

Beispiel:
%XMP_ListAddr("%OTO",1)


XMP_ListCount

%XMP_ListCount(Addressliste)

Ermittelt aus einer Liste mit E-Mail Adressen, wie diese z.B. in "%OTO" gespeichert ist, die Anzahl der Adressen.

Um einen Namen aus der Adressliste zu extrahieren, kann das Makro "XMP_ListName" verwendet werden, oder nur für die E-Mail Adresse "XMP_ListAddr".

Beispiel:
%XMP_ListAddr("%OTO","%XMP_ListCount('%OTO')")


XMP_ListName

%XMP_ListName(Addressliste, Eintrag)

Ermittelt aus einer Liste mit E-Mail Adressen, wie diese z.B. in "%OTO" gespeichert ist, einen bestimmten Namen ("Eintrag").

Wird kein Name gefunden, wird die E-Mail Adresse zurückgegeben.

Um eine Adresse aus der Liste zu extrahieren, kann das Makro "XMP_ListAddr" verwendet werden. Das Makro "XMP_ListCount" ermittelt die Anzahl der verfügbaren Einträge.

Beispiel:
%XMP_ListName("%OTO",1)


XMP_MsgID

%XMP_MsgID([MID])

Gibt die Message-ID der Originalnachricht aus.

Hat "MID" den Wert "1" wird der Text "mid:" vor der Message-ID weggelassen.

Wenn "MID" gleich "2" ist, wird an Stelle der MID der Inhalt der Headerzeile "References" ausgegeben.

Ist "MID" gleich "3", wird die neue Referenz, also "References" + "Message-ID" ausgegeben.

Beispiel:
<%XMP_MsgID>
%XMP_MsgID(0)
%XMP_MsgID(1)
%XMP_MsgID(2)
%XMP_MsgID(3)

Ausgabe:
<mid:779938887.20040931000449@gmx.de>
mid:779938887.20040931000449@gmx.de
779938887.20040931000449@gmx.de
<1501856080.20040930205831@gmx.de> <872297055.20040930235903@gaijin.at>
<1501856080.20040930205831@gmx.de> <872297055.20040930235903@gaijin.at> <779938887.20040931000449@gmx.de>


XMP_NoSubj

%XMP_NoSubj([Betreff])

Wenn in der aktuellen Nachricht der Betreff leer ist, wird der unter "Betreff" angegebene Wert zurückgegeben. Sonst gibt das Makro den aktuellen Betreff zurück.

Wird "Betreff" nicht angegeben, wird "(ohne Betreff)" ausgegeben.

Beispiel:
%XMP_NoSubj("LEER")%-
%SUBJ="%XMP_NoSubj"

In einer Antwort auf eine Nachricht mit leerem Betreff führt das Beispiel zur Ausgabe von "Re: LEER", als neuer Betref wird "Re: (ohne Betreff)" gesetzt.


XMP_NoTo

%XMP_NoTo([Empfänger])

Wenn in der aktuellen Nachricht das "TO" und das "CC" Feld leer sind, wird der unter "Empfänger" angegebene Wert zurückgegeben. Ansonsten wird der Inhalt des Feldes "TO" zurückgegeben.

Wird "Empfänger" nicht angegeben, wird "(geheime Empfänger)" ausgegeben.

Beispiel:
%XMP_NoTo("GEHEIM")%-
%TO="%XMP_NoTo"

In einer Antwort auf eine Nachricht mit leeren Empfängerfeldern führt das Beispiel zur Ausgabe von "GEHEIM", als neuer Empfänger wird "(geheime Empfänger)" gesetzt.


XMP_QuoteAdd

%XMP_QuoteAdd(Text, [Zeichen])

Stellt jeder Zeile in "Text" das angegebene Quote-"Zeichen" voran.

Wird "Zeichen" nicht angegeben, wird "> " als Standard verwendet.

Beispiel:
%XMP_QuoteAdd("%TEXT")

Ausgabe:
> Zeile 1
> Zeile 2
> Zeile 3


XMP_QuoteDel

%XMP_QuoteDel(Text, [MaxLänge], [Zeichen])

Entfernt alle Quote-Zeichen aus dem "Text".

"MaxLänge" gibt die maximale Länge eines Quote-Zeichens an. Ist "MaxLänge" niht angegeben, werden 6 Zeichen angenommen.

"Zeichen" legt das zu entfernende Quote-Zeichen fest. Der Standardwert ist ">". Folgt auf das Quotezeichen ein Leerzeichen, wird auch dieses entfernt.

Beispiel:
%XMP_QuoteDel("%TEXT",3)

Text:
>>> Zeile 1
A> AB> ABC> AB> Zeile 2
> > > > >   Zeile 3
>> >> Zeile 4

Ausgabe:
Zeile 1
ABC> AB> Zeile 2
  Zeile 3
Zeile 4

In der Zeile 2 wird ab "ABC>" nichts mehr entfernt, da die Länge (4 Zeichen) die maximale Länge von 3 Zeichen überschreitet.

In Zeile 3 wird das erste Leerzeichen nach dem Quotezeichen entfernt, die restlichen beiden Leerzeichen bleiben erhalten, um Einrückungen nicht zu zerstören.


%XMP_Sig

Gibt einen Signaturtrenner (ohne anschließenden Zeilenumbruch) zurück. Ein korrekter Signaturtrenner besteht aus den Zeichen "-- " (Minus, Minus, Leerzeichen).

Beispiel:
%XMP_Sig
Mit freundlichen Grüßen

Ausgabe:
--
Mit freundlichen Grüßen


XMP_SubjClean

%XMP_SubjClean([Betreff])

Entfernt alle Antwort- und Weiterleitungsvermerke vor dem Betreff.

Folgende Vermerke werden erkannt und entfernt:

  • antw
  • antwort
  • aw
  • betr
  • betrifft
  • betreff
  • forw
  • fw
  • fwd
  • ha
  • rcpt
  • re
  • ref
  • war
  • was
  • wg
  • wtr

Ist "Betreff" nicht angegeben, wird der Betreff der aktuellen Nachricht verwendet.

Beispiel:
%XMP_SubjClean("Re: Fwd[3]: Re[5]: Wtr: Betr: Originalbetreff")

Ausgabe:
Originalbetreff


XMP_SubjCount

%XMP_SubjCount([NoFwds], [Betreff])

Zählt die Antwort- bzw. Weiterleitungsvermerke am Beginn eines Betreffs und gibt die Anzahl zurück.

Folgende Vermerke werden erkannt und entfernt:

  • antw
  • antwort
  • aw
  • betr
  • betrifft
  • betreff
  • forw
  • fw
  • fwd
  • ha
  • rcpt
  • re
  • ref
  • war
  • was
  • wg
  • wtr

Wird für das Argument "NoFwds" der Wert "1" angegeben, werden Weiterleitungen nicht mitgerechnet.

Ist "Betreff" nicht angegeben, wird der Betreff der aktuellen Nachricht verwendet.

Beispiel:
%XMP_SubjCount(0,"Re: Fwd[3]: Re[5]: Wtr: Betr: Originalbetreff")
%XMP_SubjCount(1,"Re: Fwd[3]: Re[5]: Wtr: Betr: Originalbetreff")

Ausgabe:
11
7


XMP_UrlDec

%XMP_UrlDec(URL)

Demaskiert in der "URL" Sonderzeichen, die vorher mit %XMP_UrlEnc maskiert wurden.

Beispiel:
%_TMP=#%XMP_UrlEnc("mailto:test@tester.com?subject=Test Subjekt")#%-
%_TMP
%XMP_UrlDec("%_TMP")%-

Ausgabe:
mailto%3Atest%40tester%2Ecom%3Fsubject%3DTest%20Subjekt
mailto:test@tester.com?subject=Test Subjekt


XMP_UrlEnc

%XMP_UrlEnc(URL, [Art])

Maskiert in der "URL" bestimmte Zeichen, die nicht in einer URL vorkommen dürfen. Dieses Makro kann auch für "mailto:"-Links verwendet werden.

Während der Link "mailto:test@tester.com?subject=Das ist ein Test" nur zum Betreff "Das" führt, wird durch den maskierten Link "mailto:test@tester.com?subject=Das%20ist%20ein%20Test" der Betreff "Das ist ein Test" richtig angezeigt.

Das optionale Argument "Art" bestimmt die Art der Maskierung:

&
Ersetzt alle & gegen "&amp;", sonst wird der Hexadezimalwert verwendet.
< oder >
Ersetzt alle "<" und ">"-Zeichen gegen "&lt;" bzw. "&gt;", sonst gegen den Hexadezimalwert.
+
Ersetzt alle Leerzeichen gegen ein Plus-Zeichen, sonst werden Leerzeichen mit "%20" maskiert.

Beispiel:
%XMP_UrlEnc("Test <aaa@bbb.com> & Test")
%XMP_UrlEnc("Test <aaa@bbb.com> & Test","&")
%XMP_UrlEnc("Test <aaa@bbb.com> & Test","&<")
%XMP_UrlEnc("Test <aaa@bbb.com> & Test",">&")
%XMP_UrlEnc("Test <aaa@bbb.com> & Test","+&<")

Ausgabe:
Test%20%3Caaa%40bbb%2Ecom%3E%20%26%20Test
Test%20%3Caaa%40bbb%2Ecom%3E%20&amp;%20Test
Test%20&lt;aaa%40bbb%2Ecom&gt;%20&amp;%20Test
Test%20&lt;aaa%40bbb%2Ecom&gt;%20&amp;%20Test
Test+&lt;aaa%40bbb%2Ecom&gt;+&amp;+Test


XMP_XtrEMLs

%XMP_XtrEMLs([Text], [Trennzeichen])

Liest alle E-Mail Adressen aus dem "Text" aus und gibt sie, getrennt mit dem angegebenen "Trennzeichen" zurück.

Ist "Text" nicht angegeben oder leer, wird der Nachrichtentext verwendet. Wurde kein "Trennzeichen" festgelegt, wird ein Windows-Zeilenumbruch (0x0D + 0x0A) verwendet.


XMP_XtrURLs

%XMP_XtrURLs([Text], [Trennzeichen], [Suchtext])

Liest alle URLs aus dem "Text" aus und gibt sie, getrennt mit dem angegebenen "Trennzeichen" zurück.

Ist "Text" nicht angegeben oder leer, wird der Nachrichtentext verwendet. Wurde kein "Trennzeichen" festgelegt, wird ein Windows-Zeilenumbruch (0x0D + 0x0A) verwendet.

Das Argument "Suchtext" gibt einen Text innerhalb der URL an, von dem aus die Länge der URL ermittelt wird. Wird "Suchtext" gefunden, sucht das Makro nach dem ersten Zeichen links und rechts von "Suchtext", das nicht in einer URL vorkommen darf. "Suchtext" ist standardmäßig auf "http://" eingestellt. Andere Angaben, wie etwa "www." oder "gaijin.at/tbpxmp." sind ebenfalls möglich.


XMP_ArgCount

%XMP_ArgCount(Text, [Trennzeichen], [Anführungszeichen])

Ermittelt die Anzahl der Einträge in einem "Text", die mit einem der angegebenen "Trennzeichen" voneinander getrennt sind. Trennzeichen, die sich innerhalb eines der "Anführungszeichen" befinden, werden ignoriert.

Ist "Trennzeichen" nicht angegeben, wird ein Leerzeichen angenommen. Wird kein "Anführungszeichen" angegeben, wird ein normales Anführungszeichen (") verwendet.

Beispiel:
%XMP_ArgCount(|"ABC 123 XYZ"789 test1 test2|)
%XMP_ArgCount(|"ABC,123,XYZ" 789,test1,test2|,|,|)
%XMP_ArgCount(|'ABC#123#XYZ" 789#test1:test2|,|#:|,|'"|)

Ausgabe:
3
3
3


XMP_ArgItem

%XMP_ArgItem(Text, Eintrag [Trennzeichen], [Anführungszeichen])

Gibt einen bestimmten "Eintrag" aus einem "Text" zurück, der mit einem der angegebenen "Trennzeichen" von anderen Einträgen getrennt ist. Trennzeichen, die sich innerhalb eines der "Anführungszeichen" befinden, werden ignoriert.

Ist "Trennzeichen" nicht angegeben, wird ein Leerzeichen angenommen. Wird kein "Anführungszeichen" angegeben, wird ein normales Anführungszeichen (") verwendet.

Beispiel:
%XMP_ArgItem(|"ABC 123 XYZ"789 test1 test2|,|2|)
%XMP_ArgItem(|"ABC,123,XYZ" 789,test1,test2|,|3|,|,|)
%XMP_ArgItem(|'ABC:123#XYZ" 789#test1:test2|,|1|,|#:|,|'"|)

Ausgabe:
test1
test2
'ABC:123#XYZ" 789


XMP_Grep

%XMP_Grep(Text, RegExp, [Ausgabe])

Durchsucht einen "Text" zeilenweise mit dem reguläre Ausdruck "RegExp".

"Ausgabe" gibt an, welche Zeilen ausgegeben werden sollen:

M
Gibt alle Zeilen aus, auf die der reguläre Ausdruck zutrifft. (Standard, falls nicht angegeben)
N
Gibt alle Zeilen aus, auf die der reguläre Ausdruck nicht zutrifft.
B
Gibt alle Zeilen aus, die vor dem ersten gefundenen regulären Ausdruck stehen.
A
Gibt alle Zeilen aus, die nach dem ersten gefundenen regulären Ausdruck stehen.
I
Kann zusätzlich zu "A" oder "B" angegeben werden und bewirkt, dass die Zeile, auf die der reguläre Ausdruck zutrifft, ebenfalls mit ausgegeben wird.

Achtung: Da es zu Problemen kommen kann, wenn im "Text" Anführungszeichen enthalten sind, werden diese durch den Hexadezimalcode 0x02 ersetzt. Darum muss in den regulären Ausdrücken für ein Anführungszeichen der Hexadezimalcode 0x02, also "\x02" (an Stelle von "\x22") verwendet werden.

Beispiel:
Alle Zeilen mit "http://www.":
%XMP_Grep("%TEXT","http:\/\/www\.")

Beispiel-Ausgabe:
Alle Zeilen mit "http://www.":
> Meine URL lautet http://www.gaijin.at/
Auf http://www.gaijin.at/ findest du auch das Extended Macro Plugin
http://www.gaijin.at/


XMP_StrAttach

%XMP_StrAttach(Text, Dateiname)

Speichert den "Text" in einer temporären Datei mit dem angegebenen "Dateienen" und fügt diese Datei anschließend als Anlage zur aktuellen Nachricht hinzu.

Tritt ein Fehler auf, wird "0" zurückgegeben, sonst ist die Rückgabe "1".

Die temporäre Datei wird danach NICHT gelöscht, da The Bat! diese sonst nicht findet und nicht als Anlage hinzufügen kann. Erst beim Entladen des Plugins (Beenden von The Bat!) werden alle durch dieses Makro erstellten Dateien gelöscht.

Beispiel:
%XMP_StrAttach("%TEXT","Originaltext.txt")


XMP_StrC

%XMP_StrC(Text)

Gibt den angegebenen "Text" aus und ersetzt dabei maskierte Sonderzeichen.

Folgende Sonderzeichen können verwendet werden:

\\
Backslash
\n
Zeilenvorschub
\r
Wagenrücklauf
\t
Tabulator
\w
Wagenrücklauf + Zeilenvorschub (entspricht "\r\n")
\cCHR
CHR ist der Zeichencode von 000 bis 255 und MUSS dreistellig sein!
\xHH
HH ist der Hexadezimalcode von 00 bis FF und MUSS zweistellig sein! (Die Groß- und Kleinschreibung wird nicht beachtet.)

Beispiel:
%XMP_StrC("\c034Zeile1\c034\nZeile2\tTabulator\n\nZeile4")
---
%XMP_StrC("\x55\x56\x57\x0A\c034XYZ\c034")

Ausgabe:
"Zeile1"
Zeile2     Tabulator

Zeile4
---
UVW
"XYZ"


XMP_StrChar

%XMP_StrChar(Zeichencode, [Zeichencode], ...)

Wandelt die angegebenen Zeichencodes (von 0 bis 255) in einen Text um und gib diesen zurück.

Beispiel:
%XMP_StrChar(65,66,67,13,10,49,50,51)

Ausgabe:
ABC
123


XMP_StrCount

%XMP_StrCount(Text, Suchtext, [GroßKlein])

Gibt die Anzahlder Fundstellen von "Suchtext" in "Text" zurück.

Ist "GroßKlein" angegeben und hat das Argument den Wert "1", dann wird nicht zwischen Groß- und Kleinschreibung unterschieden.

Beispiel:
%XMP_StrCount("Abc ABC abC abc","abc")
%XMP_StrCount("Abc ABC abC abc","abc",1)

Ausgabe:
1
5


XMP_StrDup

%XMP_StrDup(Text, Anzahl)

Fügt den "Text" mehrmals aneinander. Das Argument "Anzahl" bestimmt wie oft der Text angehängt werden soll.

Beispiel:
%XMP_StrDup("=-",20)=

Ausgabe:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


XMP_StrIns

%XMP_StrIns(Originaltext, Text, [Start/Ausrichtung], [Länge])

Fügt den "Text" in den "Originaltext" ein.

Mit "Start" wird die Startposition des Textes angegeben, "Länge" bezeichnet die Anzahl der Zeichen, die im Originaltext überschrieben werden sollen.

Der Standardwert von "Start" ist "1" und von "Länge" "0".

An Stelle einer Startposition ("Start"), kann auch eine Ausrichtungsangabe verwendet werden, die den "Text" innerhalb des "Originaltextes" ausrichtet und diesen dabei überschreibt. Folgende Ausrichtungen sind möglich:

L
Linksbündig
R
Rechtsbündig
M
Mittige Ausrichtung, wobei bei einer ungeraden Zeichenanzahl der Text mehr links ausgerichtet wird.
N
Mittige Ausrichtung, wobei bei einer ungeraden Zeichenanzahl der Text mehr rechts ausgerichtet wird.

Beispiel:
%XMP_StrIns("123456789","ABC")
%XMP_StrIns("123456789","ABC","R")
%XMP_StrIns("123456789","ABC","L")
%XMP_StrIns("123456789","ABC",4)
%XMP_StrIns("123456789","ABC",4,1)
%XMP_StrIns("123456789","ABC",4,999)

Ausgabe:
ABC123456789
123456ABC
ABC456789
123ABC456789
123ABC56789
123ABC


XMP_StrItem

%XMP_StrItem(Text, Trennzeichen, Eintrag)

Liest einen "Eintrag" aus einem "Text" aus, der mit einem bestimmten "Trennzeichen" getrennt ist.

Beispiel:
%XMP_StrItem("123#ABC#XYZ","#",2)

Ausgabe:
ABC


XMP_StrItemCnt

%XMP_StrItem(Text, Trennzeichen)

Ermittelt die Anzahl der Einträge in einem "Text", die mit "Trennzeichen" voneinander getrennt sind.

Beispiel:
%XMP_StrItemCnt("123#ABC#XYZ","#")

Ausgabe:
3


XMP_StrLeft

%XMP_StrLeft(Text, Anzahl)

Gibt eine bestimmte "Anzahl" von Zeichen aus dem "Text" zurück, beginnend beim ersten Zeichen.

Beispiel:
%XMP_StrLeft("123456789",3)

Ausgabe:
123


XMP_StrLen

%XMP_StrLen(Text)

Ermittelt die Länge des angegebenen Textes.

Beispiel:
%XMP_StrLen("ABCEDEF")

Ausgabe:
7


XMP_StrLines

%XMP_StrLines(Text, [Start], [Anzahl])

Liest aus dem "Text" ab der Zeile "Start" eine bestimmte "Anzahl" von Zeilen aus und gibt diese als Ergebnis zurück.

Wird "Start" oder "Anzahl" weggelassen, wird in beiden Fällen eine Zeile angenommen. Der Aufruf des Makros nur mit einem Text gibt somit die erste Zeile des Textes aus.

Beispiel:
%XMP_StrLines("%TEXT",2,2)

Ausgabe:
Zeile2
Zeile3


XMP_StrLnCnt

%XMP_StrLnCnt([Text])

Ermittelt die Anzahl der Zeilen im angegebenen "Text".

Wird "Text" nicht angegeben, wird der Nachrichtentext der Originalnachricht verwendet.

Beispiel:
%XMP_StrLnCnt
%XMP_StrLnCnt("")
%XMP_StrLnCnt("%_VAR")

Beispiel-Ausgabe:
25
0
3


XMP_StrMid

%XMP_StrMid(Text, Start, [Anzahl])

Gibt eine bestimmte "Anzahl" von Zeichen aus dem "Text" zurück, beginnend beim Zeichen "Start".

Wird "Anzahl" nicht angegeben, werden alle Zeichen nach "Start" zurückgegeben.

Beispiel:
%XMP_StrMid("123456789",3,4)
%XMP_StrMid("123456789",3)

Ausgabe:
3456
3456789


XMP_StrPos

%XMP_StrPos(Text, Suchtext, [GroßKlein])

Ermittelt die Position des ersten Vorkommens des "Suchtextes" im "Text".

Ist unter "GroßKlein" der Wert "1" eingetragen, wird nicht zwischen Groß- und Kleinschreibung unterschieden.

Beispiel:
%XMP_StrPos("AbcABCabc","ABC")
%XMP_StrPos("AbcABCabc","ABC",1)

Ausgabe:
4
1


XMP_StrRepl

%XMP_StrRepl(Text, Suche, Neu, [GroßKlein], [Alle])

Ersetzt alle Vorkommen von "Suche" im "Text" gegen "Neu".

Ist unter "GroßKlein" der Wert "1" eingetragen, wird nicht zwischen Groß- und Kleinschreibung unterschieden.

Ist "Alle" auf den Wert "1" gestellt, wird nach dem Ersetzen nochmals geprüft, ob durch den voran gegangenen Ersetzungsvorgang neue Fundstellen entstanden sind. Auch hier wird die Angaben "GrossKlein" beachtet.

Achtung: Bei der Verwendung von "Alle" muss darauf geachtet werden, dass keine "Endlos-Schleifen" entstehen, z.B. durch: "%XMP_StrRepl("XxXxXxXxXxXxXx","X","x",1,1)"!

Beispiel:
%XMP_StrRepl("AbcABCabc","ABC","Xyz")
%XMP_StrRepl("AbcABCabc","ABC","Xyz",1)
%XMP_StrRepl("XxXxXxXxXxXxXx","XX","x",1,1)

Ausgabe:
AbcXyzabc
XyzXyzXyz
x


XMP_StrRev

%XMP_StrRev(Text)

Gibt den "Text" in umgekehrter Reihenfolge zurück.

Beispiel:
%XMP_StrRev("Hallo")

Ausgabe:
ollaH


XMP_StrRight

%XMP_StrRight(Text, Anzahl)

Gibt eine bestimmte "Anzahl" an Zeichen aus dem "Text" zurück, beginnen beim letzten Zeichen.

Beispiel:
%XMP_StrRight("123456789",4)

Ausgabe:
6789


XMP_StrTr

%XMP_StrTr(Text, Suche, [Ersetze], [Optionen])

Ersetzt im angegebenenen "Text" alle Zeichen, die in der Zeichenfolge "Suche" angegeben sind gegen jene Zeichen in "Ersetze", die sich an der selben Position befinden. Das bedeuted, dass das erste Zeichen in "Suche" gegen das erste Zeichen in "Ersetze" ausgetaucht wird, das zweite Zeichen gegen das zweite Zeichen usw.

Wird "Ersetze" nicht angegeben oder ist "Ersetze" eine leere Zeichenfolge, werden alle Zeichen in "Suche" aus dem "Text" gelöscht. (Entspricht auch der Option "D".)

Die Angaben im Parameter "Suche" und "Ersetze" müssen denen von %XMP_StrC entsprechen. Somit ist auch die Angabe von Sonderzeichen möglich.

Als "Optionen" können folgende Werte verwendet werden:

D
Entfernt alle Zeichen in "Suche" aus dem "Text". Die Zeichenfolge in "Ersetze" wird dabei nicht beachtet.
L
Es wird bei der Suche nicht zwischen Groß- und Kleinschreibung unterschieden.

Beispiel:
HALLO
4A110
allo
AO

Ausgabe:
%XMP_StrTr("HALLO","loh","104")
%XMP_StrTr("HALLO","loh","104","L")
%XMP_StrTr("Hallo","HL")
%XMP_StrTr("HALLO","Hl","XXX","DL")


XMP_StrTrim

%XMP_StrTrim(Text, [LinksRechts])

Entfernt alle Leer- und Steuerzeichen am Beginn bzw. am Ende eines "Textes". Zusätzlich wird auch das Zeichen 160 (0xA0) entfernt, das in HTML-Mails manchmal an Stelle eines Leerzeichens verwendet wird.

Um nur links oder rechts Leerzeichen zu entfernen, kann unter "LinksRechts" der Wert "L" für links oder "R" für rechts angegeben werden.

Beispiel:
|%XMP_StrTrim("   ABC   ")|
|%XMP_StrTrim("   ABC   ","L")|
|%XMP_StrTrim("   ABC   ","R")|

Ausgabe:
|ABC|
|ABC   |
|   ABC|


XMP_StrWrap

%XMP_StrWrap(Text, [Breite])

Bricht den angegebenen "Text" nach 70 Zeichen um. Wird "Breite" angegeben, erfolgt der Umbruch nach dieser Breite.

Als Umbruchszeichen werden Leerzeichen, Tabulatoren und Trennungsstriche erkannt. Innerhalb von doppelten und einfachen Anführungszeichen wird nicht umgebrochen!

Das interne Makro %WRAPPED bricht nur den ersten Absatz eines Textes um. Die Funktion %XMP_StrWrap formatiert den gesamten Text neu.

Beispiel:
%XMP_StrWrap("%CLIPBOARD",35)

Beispiel-Ausgabe:
Am Beginn jeder Makro-Beschreibung
ist die Syntax des Makros
angeführt. Jene Argumente, die in
eckigen Klammern stehen können
weggelassen werden. In diesem Fall
werden die Standardwerte
verwendet. Es dürfen aber immer
nur die hintersten Argumente
entfallen.


XMP_Accounts

%XMP_Accounts([Globale Ordner], [Trennzeichen])

Gibt die Kontennamen bzw. globalen Ordner von The Bat! zurück. Als Trennzeichen wird standardmäßig ein Windows-Zeilenumbruch (0x0D0A) verwendet.

Damit dieses Makro die Konten richtig ermitteln kann, muss im Arbeitsverzeichnis von The Bat! die Datei "AccOrder.CFG" vorhanden sein. Diese Datei wird von The Bat! automatisch erstellt, sobald ein Konto oder ein globaler Ordner mit <Ctrl><Shift> und den Cursor-Tasten neu angeordnet wurde.

Hat das Attribut "Globale Ordner" den Wert "1", werden nur die globalen Ordner ausgegeben, bei einem Wert von "2" werden sowohl die Kontennamen, als auch die Namen der globalen Ordner ausgegeben. Bei einem anderen Wert, werden nur die Kontennamen zurückgegeben.

Beispiel:
Konten:
%XMP_Accounts

Globale Ordner:
%XMP_Accounts(1)

Beispiel-Ausgabe:
Konten:
private@myisp.com
info@gaijin.at
webmaster@gaijin.at
Test
Test-IMAP

Globale Ordner:
Service
Trash
$JUNK$


XMP_Const

%XMP_Const(Konstante, [StrC], [Standard])

Liest aus der Datei "XMP.ini" aus der Sektion "Const" den Wert "Konstante" aus und gibt ihn zurück. Die Datei "XMP.ini" muss sich im selben Verzeichnis befinden, wie das Plugin.

Damit können längere oder oft benötigte Text, gespeichert werden. Beispielsweise bei Pfadangaben, die in vielen Vorlagen vorkommen kann mit diesem Makro das Editieren von allen Vorlagen vermieden werden, falls sich der Pfad ändert.

Es können Texte bis zu 10 KB gespeichert werden. Um auch Sonderzeichen, wie etwa Zeilenumbrüche zu speichern, können Sonderzeichen, so wie im Makro "%XMP_StrC" angegeben, verendet werden. Mit dem optionalen Argument "StrC" werden diese Sonderzeichen vor der Ausgabe umgewandelt.

Das Argument "Standard" bezeichnet die Standard-Ausgabe, falls die Konstante nicht gefunden wurde, oder ein anderer Fehler aufgetreten ist. Ist "Standard" nicht angegeben, wird eine leere Zeichenkette zurückgegeben.

Beispiel:
%XMP_Const('Path_QT_Pack')
%XMP_Const('Test',1)

Inhalt der Datei "XMP.ini":
[Const]
Path_QT_Pack=C:\WINDOWS\Anwendungsdaten\The Bat!\Vorlagen\QT_Pack
Test=123\wABC

Ausgabe:
C:\WINDOWS\Anwendungsdaten\The Bat!\Vorlagen\QT_Pack
123
ABC


XMP_CRC32

%XMP_CRC32(Einstellungen, [Zeichenkette])
%XMP_CRC32(Einstellungen, Datei(en), [Trennzeichen])

Ermittelt eine CRC-32 Prüfsumme aus einem Text oder einer oder mehrerer Dateien.

Das Argument "Einstellung" kann folgende Werte haben:

S
Zeichenkette (Standard)
Es wird die CRC-32 Prüfsumme vom angegebenen Text errechnet und zurückgegeben.
F
Dateien
Die CRC-32 Prüfnumme wird aus dem Inhalt der angegebenen Dateien errechnet. Diese Dateien werden automatisch als Attachment der aktuellen Nachricht angehängt. Die Dateien müssen mit einem Pipe-Zeichen (|) voneinander getrennt werden. Die Ausgabe des Makros %XMP_DlgOpen kann somit direkt übernommen werden.
A
Fügt das Ergebnis als Attachment hinzu. Als Dateiname wird "Attachments.sfv" verwendet. Das Format der SFV Datei ist kompatibel zu Total Commander 5.50.
N
Verhindert das automatische Hinzufügen von Attachments.
D
Gibt an, dass ein Trennzeichen als letzter Parameter übergeben wurde. Voreinstellung ist ": ".

Ist als Einstellung "S" angegeben, werden alle anderen Einstellungen ignoriert.

Die CRC-32 Prüfsumme ist kompatibel mit Total Commander, WinZip, WinRAR, PKZIP, ARJ und ZMODEM.

Beispiel:
%XMP_CRC32("S","Test-Text")
%XMP_CRC32("FDN","C:\Boot.ini|D:\crctest.dat"," = ")
%XMP_CRC32("FDA","C:\Boot.ini|D:\crctest.dat"," : ")

Beispiel-Ausgabe:
9F23133A
Boot.ini = 063E2DF0
crctest.dat = BEEFBEEF


XMP_For

%XMP_For(Variable, Von, Bis, Vorlage)

Führt die "Vorlage" mehrmals hintereinander aus. Beginnend bei der Zahl "Von" wird die "Variable" so lange erhöht, bis sie den Wert "Bis" erreicht. In der "Vorlage" kann die Variable mit "%%_Variable" abgefragt werden.

Beispiel:
%XMP_For("x",1,3,"Zeile %%_x
")%-
%XMP_For("y",4,8,"%%_y. Zeile%XMP_StrChar(10)")

Ausgabe:
Zeile 1
Zeile 2
Zeile 3
4. Zeile
5. Zeile
6. Zeile
7. Zeile
8. Zeile


XMP_Progress

%XMP_Progress(Füllung, Balken, Länge, Gesamt, Wert)

Zeichnet eine Vortschrittsleiste in der angegebenen "Länge". Die "Länge" gibt die Gesamtlänge der Leiste an, die mit dem Zeichen "Füllung" ausgefüllt wird. Für die Darstellung des Vortschrittes wird das unter "Balken" angegebene Zeichen verwendet. Der Wert "Gesamt" bezieht sich auf den Maximalwert von "Wert", der den Fortschritt angibt.

Beispiel:
[%XMP_Progress("-","#",25,7,6)]
[%XMP_Progress(".","X",25,100,50)]

Ausgabe:
[#####################----]
[XXXXXXXXXXXX.............]


XMP_Random

%XMP_Random([Max])
%XMP_Random([Min], [Max])

Generiert eine Zufallszahl zwischen "Min" und "Max".

Wird "XMP_Random" ohne Parameter aufgerufen, wird eine Zwahl im Bereich von 1 bis 100 zurückgegeben.

Wird nur ein Argument angegeben, wird eine Zahl zwischen 1 und "Max" zurückgegeben.

Beispiel:
%XMP_Random
%XMP_Random(10)
%XMP_Random(100,999)

Ausgabe:
78
3
732


XMP_ReX

%XMP_ReX(Text, Ausdruck,[SubPatt])

Dieses Makro ist eine Vereinfachung der RegExp-Makros von The Bat!. Das Argument "Text" legt den Text fest, der durchsucht werden soll. "Ausdruck" steht für den regulären Ausdruck, nach den gesucht werden soll. Wird "SubPatt" angegeben, wird das entsprechende Sub-Pattern zurückgegeben, sonst wird das erste Sub-Pattern zurückgegeben.

Wird "SubPatt" angegeben, entspricht die Arbeitsweise der von "%REGEXPBLINDMATCH". Wird "SubPatt" nicht angegeben, wie der von "%REGEXPMATCH".

Achtung: Da es zu Problemen kommen kann, wenn im "Text" Anführungszeichen enthalten sind, werden diese durch den Hexadezimalcode 0x02 ersetzt. Darum muss in den regulären Ausdrücken für ein Anführungszeichen der Hexadezimalcode 2, also "\x02" verwendet werden.

Beispiel:
%XMP_ReX("abc test TEXT abc",".*(test)(\s)(.*)\s.*")
%XMP_ReX("abc test TEXT abc",".*(test)(\s)(.*)\s.*","0")
%XMP_ReX("abc test TEXT abc",".*(test)(\s)(.*)\s.*",3)

Ausgabe:
test
abc test TEXT abc
TEXT


XMP_Rot13

%XMP_Rot13(Text)

Kodiert den "Text" in und von ROT-13.

Beispiel:
%XMP_Rot13("ROT13 Test-Text")
%XMP_Rot13("EBG13 Grfg-Grkg")

Ausgabe:
EBG13 Grfg-Grkg
ROT13 Test-Text


XMP_Select

%XMP_Select(Wert, Standard, Wert1, Ausgabe1, [Wert2], [Ausgabe2], ...)

Überprüft, ob der "Wert" einem der unter "Wert1", "Wert2"... angebebenen Werte entspicht und gibt die entsprechende "Ausgabe" zurück. Trifft kein Wert zu, wird "Standard" zurückgegeben.

Beispiel:
%_Farbe="G"%-
%_Zahl="3"%-
%XMP_Select(%_Farbe,"keine Farbe","R","Rot","G","Grün","B","Blau")
%XMP_Select(%_Zahl,"keine gültige Zahl","1","eins","2","zwei")

Ausgabe:
Grün
keine gültige Zahl


XMP_Until

%XMP_Until(Variable, Bis, Vorlage)

Führt die "Vorlage" solange aus, bis "Variable" den Wert von "Bis" erreicht. In der "Vorlage" kann die Variable mit "%%_Variable" gesetzt bzw. abgefragt werden.

Beispiel:
%XMP_Until("x","3","%%_x=#%%CALC('%%_x + 1')#%%-
%%_x. Zeile%%XMP_StrChar(10)")

Ausgabe:
1. Zeile
2. Zeile
3. Zeile


XMP_UrlDldFile

%XMP_UrlDldFile(URL, Dateiname)

Startet den Download einer Datei von der "URL" und speichert diese Datei unter "Dateiname" ab.

Die "URL" und der "Dateiname" müssen den kompletten Pfad zur Datei beinhalten.

Das Makro gibt "1" für einen erfolgreichen Download und "0" für einen fehlgeschlagenen Download zurück.

Achtung: Die herunter zu ladende Datei sollte nicht all zu groß sein, da das Makro für die Dauer des Downloads stoppt und keine Möglichkeit zum Abbrechen bietet.


Datums- und Zeitformatierung

Datums- und Zeitformate

Die Datums- und Zeitformate entsprechen grundsätzlich denen, wie sie in The Bat! verwendet werden. Ausnahmen bilden die Bezeichner "//" und "bbbb". Ein einfacher Schrägstrich bewirkt die Anzeige eines länderspezifischen Trennzeichens.

Format-Strings für Datums- und Zeitwerte setzen sich aus Formatbezeichnern zusammen, die für die in den formatierten String einzufügende Werte stehen. Einige Formatbezeichner (wie z.B. "d") formatieren nur Zahlen oder Strings. Andere (wie z.B. "/") referenzieren länderspezifische Strings in den globalen Variablen.

Die folgende Tabelle enthält die gültigen Formatbezeichner. Die Groß-/Kleinschreibung in Formaten wird nur bei den Bezeichnern "am/pm" und "a/p" berücksichtigt.

Bezeichner | Anzeige
c | Zeigt das Datum und die Uhrzeit im Format "dd.mm.yyyy hh:mm:ss" an. Die Uhrzeit erscheint nicht, wenn der Datums-/Zeitwert exakt Mitternacht ergibt.
d | Zeigt den Tag als Zahl ohne führende Null an (1-31).
dd | Zeigt den Tag als Zahl mit führender Null an (01-31).
ddd | Zeigt den Wochentag als Abkürzung (Son-Sam) an.
dddd | Zeigt den ausgeschriebenen Wochentag (Sonntag-Samstag) an.
ddddd | Zeigt das Datum im Format dd.mm.yyyy an.
dddddd | Zeigt das Datum im Format dddd, dd. mmmm yyyy an.
e | Zeigt das Jahr in der aktuellen Datums-/Zeitangabe als Zahl ohne führende Null an (gilt nur für die japanische, koreanische und taiwanesische Ländereinstellung).
ee | Zeigt das Jahr in der aktuellen Datums-/Zeitangabe als Zahl mit führender Null an (gilt nur für die japanische, koreanische und taiwanesische Ländereinstellung).
g | Zeigt die Datums-/Zeitangabe als Abkürzung an (gilt nur für die japanische und taiwanesische Ländereinstellung).
gg | Zeigt die Datums-/Zeitangabe in ausgeschriebener Form an (gilt nur für die japanische und taiwanesische Ländereinstellung).
m | Zeigt den Monat als Zahl ohne führende Null an (1-12). Wenn auf den Bezeichner m unmittelbar der Bezeichner h oder hh folgt, werden an Stelle des Monats die Minuten angezeigt.
mm | Zeigt den Monat als Zahl mit führender Null an (01-12). Wenn auf den Bezeichner mm unmittelbar der Bezeichner h oder hh folgt, werden an Stelle des Monats die Minuten angezeigt.
mmm | Zeigt den Monatsnamen als Abkürzung (Jan-Dez) an.
mmmm | Zeigt den ausgeschriebenen Monatsnamen (Januar-Dezember) an.
yy | Zeigt das Jahr als zweistellige Zahl an (00-99).
yyyy | Zeigt das Jahr als vierstellige Zahl an (0000-9999).
h | Zeigt die Stunde ohne führende Null an (0-23).
hh | Zeigt die Stunde mit führender Null an (00-23).
n | Zeigt die Minute ohne führende Null an (0-59).
nn | Zeigt die Minute mit führender Null an (00-59).
s | Zeigt die Sekunde ohne führende Null an (0-59).
ss | Zeigt die Sekunde mit führender Null an (00-59).
z | Zeigt die Millisekunde ohne führende Null an (0-999).
zzz | Zeigt die Millisekunde mit führender Null an (000-999).
t | Zeigt die Uhrzeit im Format "hh:mm" an.
tt | Zeigt die Uhrzeit im Format "hh:mm:ss" an.
am/pm | Verwendet die 12-Stunden-Zeitanzeige für den vorhergehenden Bezeichner h oder hh und zeigt alle Stunden vor Mittag mit dem String 'am' und alle Stunden nach Mittag mit dem String 'pm' an. Der Bezeichner am/pm kann in Großbuchstaben, in Kleinbuchstaben oder in gemischter Schreibweise eingegeben werden. Die Ausgabe wird entsprechend angepasst.
a/p | Verwendet die 12-Stunden-Zeitanzeige für den vorhergehenden Bezeichner h oder hh und zeigt alle Stunden vor Mittag mit dem Zeichen 'a' und alle Stunden nach Mittag mit dem Zeichen 'p' an. Der Bezeichner a/p kann in Großbuchstaben, in Kleinbuchstaben oder in gemischter Schreibweise eingegeben werden. Die Ausgabe wird entsprechend angepasst.
ampm | Verwendet die 12-Stunden-Zeitanzeige für den vorhergehenden Bezeichner h oder hh und zeigt die Zeichen für Vormittag bzw. Nachmittag, je nach lokalen Einstellungen an (im deutschsprachigen Bereich wird nichts angezeigt).
/ | Zeigt als Datumstrennzeichen das Standardzeichen (Punkt) an.
: | Zeigt als Uhrzeittrennzeichen das Standardzeichen (Doppelpunkt) an.
'xx'/"xx" | Zeichen, die in einfache oder doppelte Anführungszeichen eingeschlossen sind, werden ohne spezielle Formatierung übernommen. Dies gilt jedoch nicht für den Bezeichner "bbbb"!
// | Zeigt einen einfachen Schrägstrich ("/") an.
bbbb | Zeigt den Bias im Format +/-hhnn an (ist nur in den Makros "%XMP_TimeParse" und "%XMP_HdrRcvTime" verfügbar!).
ww | Zeigt die Woche des Monats an. (ist nur in den Makros "%XMP_TimeCalc", "%XMP_TimeParse" und "%XMP_HdrRcvTime" verfügbar!)
www | Zeigt die Woche des Jahres an. (ist nur in den Makros "%XMP_TimeCalc", "%XMP_TimeParse" und "%XMP_HdrRcvTime" verfügbar!)
x | Zeigt den Tag des Jahres an. (ist nur in den Makros "%XMP_TimeCalc", "%XMP_TimeParse" und "%XMP_HdrRcvTime" verfügbar!)

Länderspezifischen Einstellungen

Weiters kann am Beginn des Formatstrings eine Zeichenkette angegeben werden, die die länderspezifischen Einstellungen festsetzt.

Die Festlegung einer bestimmten länderspezifischen Einstellung erfolgt durch die Angabe eines 2stelligen Sprachcodes (Ländercode) und einem Dollar-Zeichen zur Abgrenzung des Format-Strings. Beispiel: "GE$d/ mmmm yyyy" legt das deutsche Format fest und gibt z.B. "5. Januar 2004" zurück, während "AT$d/ mmmm yyyy" (Österreich) den Text "5. Jänner 2004" zurückgibt.

Bis auf Katalonisch (CT) sind alle in The Bat! verfügbaren Sprachen enthalten.

Wird ein falscher Sprachcode angegeben, wird der System-Standard verwendet, so wie bei keiner Angabe.

Sprachcode | Land / Sprache
AM | English (American)
AT | German (Austria)
BF | Dutch (Belgian - Flemish)
BR | English (British)
CZ | Czech
DA | Danish
EA | English (Australian)
EC | English (Canadian)
EI | English (Ireland)
EZ | English (New Zealand)
FB | French (Belgian)
FC | French (Canadian)
FI | Finnish
FR | French
FS | French (Swiss)
GE | German
GR | Greek
GS | German (Swiss)
HU | Hungarian
IC | Icelandic
IS | Italian (Swiss)
IT | Italian
NL | Dutch
NN | Norwegian (Nynorsk)
NO | Norwegian (Bokmal)
PB | Portuguese (Brazil)
PL | Polish
PT | Portuguese (Iberian)
RU | Russian
SK | Slovak
SM | Spanish (Mexican)
SN | Spanish (Modern)
SP | Spanish (Standard/Traditional)
SW | Swedish
TK | Turkish
XX | Language-Neutral
ZZ | Default Language

Hinweis

Bei allen Datumsangaben beim Aufruf eines XMP-Makros muss darauf geachtet werden, dass die Angaben im jeweiligen länderspezifischen Format notiert werden. So ist z.B. bei einer amerikanischen Ländereinstellung in Windows das Datumsformat "dd/mm/yyyy" anzugeben.


Zeitzonen

Die folgende Tabelle enthält die unterstützten Zeitzonen:

Name | Bezeichnung | Min | Std | +/-hhnn
BST | British Summer Time | 60 | 1 | +0100
CET | Central European Time | 60 | 1 | +0100
FWT | French Winter Time | 60 | 1 | +0100
MET | Middle European Time | 60 | 1 | +0100
MEWT | Middle European Winter Time | 60 | 1 | +0100
MEZ | Mitteleuropäische Zeit | 60 | 1 | +0100
SWT | Swedish Winter Time | 60 | 1 | +0100
CEST | Central European Summer Time | 120 | 2 | +0200
EET | Eastern European Time | 120 | 2 | +0200
FST | French Summer Time | 120 | 2 | +0200
MEST | Middle European Summer Time | 120 | 2 | +0200
MESZ | Mitteleuropäische Sommerzeit | 120 | 2 | +0200
USZ1 | USSR Zone 1 | 120 | 2 | +0200
BA.T | Baghdad Time | 180 | 3 | +0300
BT | Baghdad Time | 180 | 3 | +0300
USZ2 | USSR Zone 2 | 180 | 3 | +0300
IT | Iran Time | 210 | 3,5 | +0330
USZ3 | USSR Zone 3 | 240 | 4 | +0400
USZ4 | USSR Zone 4 | 300 | 5 | +0500
IST | Indian Time | 330 | 5,5 | +0530
USZ5 | USSR Zone 5 | 360 | 6 | +0600
NST | North Sumatra Time | 390 | 6,5 | +0630
SST | South Sumatra Time | 420 | 7 | +0700
USZ6 | USSR Zone 6 | 420 | 7 | +0700
WAST | West Australian Standard Time | 420 | 7 | +0700
JT | Java Time | 450 | 7,5 | +0730
CCT | China Coast Time | 480 | 8 | +0800
HST | HongKong Standard Time | 480 | 8 | +0800
USZ7 | USSR Zone 7 | 480 | 8 | +0800
WADT | West Australian Daylight Time | 480 | 8 | +0800
WEST | West Australian Time | 480 | 8 | +0800
WST | West Australian Summer Time | 480 | 8 | +0800
JST | Japan Standard Time | 540 | 9 | +0900
KST | Korean Standard Time | 540 | 9 | +0900
USZ8 | USSR Zone 8 | 540 | 9 | +0900
SAST | South Australian Time | 570 | 9,5 | +0930
AEST | Australian Eastern Time | 600 | 10 | +1000
EAST | East Australian Standard Time | 600 | 10 | +1000
GST | Guam Time | 600 | 10 | +1000
JDT | Japan Daylight Time | 600 | 10 | +1000
USZ9 | USSR Zone 9 | 600 | 10 | +1000
CADT | Central Australian Daylight Time | 630 | 10,5 | +1030
SADT | South Australian Daylight Time | 630 | 10,5 | +1030
AEDT | Australian Eastern Daylight Time | 660 | 11 | +1100
USZ10 | USSR Zone 9 | 660 | 11 | +1100
IDLE | International Date Line, East | 720 | 12 | +1200
NZST | New Zealand Summer Time | 720 | 12 | +1200
NZT | New Zealand Time | 720 | 12 | +1200
NZDT | New Zealand Daylight Time | 780 | 13 | +1300
WAT | West Africa Time | -60 | -1 | -0100
AT | Azores Time | -120 | -2 | -0200
ADT | Atlantic Daylight Time | -180 | -3 | -0300
BST | Brazil Standard Time | -180 | -3 | -0300
BZT2 | Brazil Zone 2 | -180 | -3 | -0300
GST | Greenland Standard Time | -180 | -3 | -0300
NST | Newfoundland Time | -210 | -3,5 | -0330
AST | Atlantic Standard Time | -240 | -4 | -0400
EDT | Eastern Daylight Time | -240 | -4 | -0400
EWT | Eastern War Time | -240 | -4 | -0400
CDT | Central Daylight Time | -300 | -5 | -0500
CWT | Central War Time | -300 | -5 | -0500
EST | Eastern Standard Time | -300 | -5 | -0500
CST | Central Standard Time | -360 | -6 | -0600
MDT | Mountain Daylight Time | -360 | -6 | -0600
MWT | Mountain War Time | -360 | -6 | -0600
MST | Mountain Standard Time | -420 | -7 | -0700
PDT | Pacific Daylight Time | -420 | -7 | -0700
PWT | Pacific War Time | -420 | -7 | -0700
AHDT | Alaska-Hawaii Daylight Time | -480 | -8 | -0800
PST | Pacific Standard Time | -480 | -8 | -0800
HDT | Hawaiian Daylight Time | -540 | -9 | -0900
YST | Yukon Standard Time | -540 | -9 | -0900
AHST | Alaska-Hawaii Standard Time | -600 | -10 | -1000
BDT | Bering Daylight Time | -600 | -10 | -1000
CAT | Central Alaska Time | -600 | -10 | -1000
HST | Hawaiian Standard Time | -600 | -10 | -1000
BE.T | Bering Time | -660 | -11 | -1100
NT | Nome Time | -660 | -11 | -1100
IDL | International Date Line | -720 | -12 | -1200
IDLW | International Date Line, West | -720 | -12 | -1200